我試圖在我的web應用程序中共享Facebook上的鏈接。我已經有初始化SDK等,下面的代碼工作正常:當href參數是一個變量時,Facebook共享對話框不起作用
callToMyAPI()
.then(function(response) {
FB.ui({
method: "share",
href: "http://www.google.com",
}, function(response) {
console.log(response);
});
});
這彈開一個Facebook共享對話框,並鏈接到http://www.google.com和一點點嵌入的預覽(在底部,顯示框來自網址的圖片,以及來自頁面的標題和說明/摘錄)。當我點擊對話框中的「發佈到Facebook」按鈕,然後切換到Facebook,我看到與共享鏈接的帖子。
但我需要使用從我的API返回的值動態設置href
參數。所以我做了這個:
callToMyAPI()
.then(function(response) {
var url = response; // http://www.google.com
FB.ui({
method: "share",
href: url,
}, function(response) {
console.log(response);
});
});
基本上,所有我做的是與變量url
(其值響應,這是http://www.google.com
)取代硬編碼"http://www.google.com"
。其他一切都完全一樣。但是,當我這樣做,這裏會發生什麼:
Facebook的分享對話框仍然打開,但它缺少URL的嵌入式預覽我想分享
當我點擊「發佈到Facebook「按鈕,對話框關閉,但沒有任何內容發佈到Facebook。這就是記錄的反應僅僅是一個空數組(
[]
)
所以它窒息使用從我作爲href
值API的反應,但我不明白爲什麼。我該如何解決?
更新:多試錯之後,我發現這個古怪的動作......
如果我使用http://dev.example.com
爲href
值(其中example.com其實是我真正的域名),我不要在共享對話框的預覽,並沒有什麼向Facebook發佈:
FB.ui({
method: "share",
href: "http://dev.example.com"
});
但是,如果使用http://www.example.com
(注意www
)爲href
值(再次,其中example.com其實是我真正的域名),我還沒有得到在共享對話框中的預覽,但後確實經歷:
FB.ui({
method: "share",
href: "http://www.example.com"
});
然而,由於有在共享對話框中仍然沒有預覽,它實際上並沒有將鏈接附加到消息上。所以,在Facebook上,我得到的是一篇帖子,其中包含我寫的任何評論,但沒有嵌入到http://www.example.com
的鏈接。
你嘗試只是'HREF:response'? – isherwood 2014-09-25 18:38:15
是的,我確實是第一次,但沒有區別。我只是使用'url'變量來使它更清楚一點,那就是來自我的API的響應,以及來自Facebook的響應。 – daGUY 2014-09-25 18:43:34
如果你寫'var url ='http://www.google.com';'?如果是的話,那可能是'response'變量是一個對象而不是一個字符串。 – 2014-09-25 19:09:10