我使用FB.ui()像這樣:FB.ui拼圖:不一致的錯誤代碼191 ...(好像FB.init經常不工作)
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '##########', // App ID
channelUrl : '//www.xxxxxxxxxx.com/channel.php', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
然後,這裏的鏈接發送消息:
<a href='#' onClick="
FB.ui({
method: 'send',
name: 'Bla bla bla',
link: 'http://www.xxxxxxxxxxx.com',
to: ###########,
//redirect_uri: 'http://www.xxxxxxxxxxx.com/fb/'
});
">Send a message</a>
問題: 這個工作對我來說就像魅力和每臺計算機/瀏覽器我測試過的。但我的客戶得到以下錯誤消息非常頻繁:
API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: redirect_uri is not owned by the application
這我完全難住了!我的代碼有問題嗎?如果是這樣,爲什麼我不能重現此錯誤,而我的客戶一直可以在多臺計算機/瀏覽器上?
PS:如果你想嘗試自己,該網頁是生活here。你必須授權應用程序,但我保證不會發生令人毛骨悚然的事情。
編輯:該錯誤提到redirect_uri
,你會注意到在我的代碼中註釋掉了。原因是因爲當我包含該參數時,當我點擊「關閉」時,對話不會關閉。
編輯2:我能夠在朋友的電腦上重現此錯誤,並且CBroe也證實了它。所以,(拋開爲什麼我自己還不能生產的奧祕),最讓我難堪的是爲什麼這隻會發生一半的時間?如果我的代碼不正確,它應該永遠不會工作,對吧?
這裏是從錯誤信息的網址:
https://www.facebook.com/dialog/send?display=popup&link=http%3A%2F%2Fwww.streetofwalls.com&locale=en_US&name=Career%20Networking%20powered%20by%20Street%20of%20Walls&next=http%3A%2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter.php%3Fversion%3D8%23cb%3Df2c657ef78%26origin%3Dhttp%253A%252F%252Fwww.streetofwalls.com%252Ff3575a615c%26domain%3Dwww.streetofwalls.com%26relation%3Dopener%26frame%3Df1ca46b43c%26result%3D%2522xxRESULTTOKENxx%2522&sdk=joey&show_error=true&to=573501273
後url_decode()
版本:
https://www.facebook.com/dialog/send?display=popup&link=http://www.streetofwalls.com&locale=en_US&name=Career Networking powered by Street of Walls&next=http://static.ak.facebook.com/connect/xd_arbiter.php?version=8#cb=f2c657ef78&origin=http%3A%2F%2Fwww.streetofwalls.com%2Ff3575a615c&domain=www.streetofwalls.com&relation=opener&frame=f1ca46b43c&result=%22xxRESULTTOKENxx%22&sdk=joey&show_error=true&to=573501273
EDIT3:這個難題的 部分解決。發生錯誤的時間是FB.init()
無效的結果。我已將FB.ui()
包裝在FB.getLoginStatus(function(response){ \\... }
中,所以現在您可以在控制檯中看到更有用的錯誤。開放的問題是...爲什麼FB.init()經常失敗?
在允許您的應用後,當我點擊開始頁面上的「通過邀請好友連接來擴展您的網絡」時,我可以確認該錯誤。 (我只能得到紅色邊框的錯誤信息,而不是詳細的錯誤代碼,但這是因爲它不在我的調試模式,我猜。) – CBroe
這是令人困惑的。錯誤信息似乎有所不同,我根本無法重現!我在發佈問題之前添加了一個'show_errors:true'參數,這似乎顯示了其他信息...有時。 – emersonthis
@CBroe:你的錯誤是否也是間歇性的?我的客戶說它只出現在每兩秒或三頁重新加載。 – emersonthis