是這樣的
前幾天在寫 Facebook APP 的時候有使用到 FB.login
因為那天 FB.getLoginStatus 莫名奇妙壞去
只好每次開頁面都呼叫 FB.login 出來檢查一次
但這其實是個很不智的作法,因為會有....
1.會跳出視窗,某些瀏覽器會擋
2.會有錯誤訊息,說你沒有權限
而這篇文章就是來解決第二點的
原本的程式如下 :
FB.getLoginStatus(function (response) { if (response.status === 'connected') { var uid = response.authResponse.userID; var accessToken = response.authResponse.accessToken; is_fan(); } else if (response.status === 'not_authorized') { window.open('https://www.facebook.com/dialog/oauth?client_id=你的APP ID&redirect_uri=http://apps.facebook.com/你的APP命名空間/&scope=email,read_stream', '_top'); } else { window.open('https://www.facebook.com/dialog/oauth?client_id=你的APP ID&redirect_uri=http://apps.facebook.com/你的APP命名空間/&scope=email,read_stream', '_top'); } });
但是某一天他突然死了,隔一天又活了....我也不知道為什麼
然後在他死的時候我就換成....
FB.login(function (response) { if (response.authResponse) { //is_fan(); } else { } }, { scope: 'email' });
結果就出現下面的錯誤訊息
死在這行,莫名奇妙 (圖很小,你們也看不清楚)
然後這好像是 facebook 的 bug
請看 Bug Tracker
http://bugs.developers.facebook.net/show_bug.cgi?id=19042
FB一直沒修好,也不指望你修了,於是自己找答案
解決方式 :
http://stackoverflow.com/questions/7280007/permission-denied-error-in-all-js
請在
FB.init 之後加上下面這段
// this code solves the issue FB.UIServer.setLoadedNode = function (a, b) { FB.UIServer._loadedNodes[a.id] = b; };
就可以解決沒有權限的問題囉~~
全站熱搜
留言列表