2013-05-26 64 views
1

Facebook Javascript API在畫布中失敗,但在我直接訪問應用程序時工作正常。每當我嘗試創建一個Facebook查詢時,我都會收到「訪問令牌需要請求此資源」錯誤。我試過getLoginStatus,但回調從未在畫布中被調用。但它確實在直接網頁中被調用。看到這段代碼:Facebook:僅在畫布中請求「訪問令牌才能請求此資源」

window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '{{ app_id }}', // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true, // parse XFBML 
     frictionlessRequests : true 
    }); 

    console.log("INIT"); 

    FB.getLoginStatus(function(response) { 
     alert("GOT STATUS"); 
     alert(response); 
    },true); 
}; 

(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

「INIT」總是輸出,但警報僅在我直接訪問頁面時調用。

編輯:這是有問題的應用程序:https://apps.facebook.com/quirkyversaries/

當您嘗試創建一個新的機會和搜索好友時出現問題。由於上面解釋的問題,搜索失敗。當您嘗試創建頁面場合時,它也會失敗,因爲頁面無法加載。

+0

您將放入JS代碼中的應用程序ID與實際在畫布中加載的應用程序相同?你能給我們鏈接到FB上的應用程序嗎? – CBroe

+0

是的,應用程序ID是正確的。我將禁用沙盒模式並在問題中發佈鏈接... –

+0

嗯,當我嘗試時搜索工作正常。 –

回答

1

1)應用程序將或者調用callback function,否則會根據docs

  • 2)重定向到redirect_url 所以,如果你指定的redirect_url,請取出

    必須subsscribe到事件auth.statuschange

    FB.Event.subscribe('auth.statusChange', function(response) { 
    // do something with response 
    }); 
    
  • getLoginStatus函數的末尾包含true是一種不好的做法,因爲您在每次加載頁面時調用它。這真的迫使往返電話。由於您在fb.init中有status:true,因此您可能不需要
+0

對不起,但我不明白你的意思第一部分,我嘗試了'FB.Event.subscribe('auth.statusChange'...'但回調沒有被調用 –

+0

你有沒有提到你的fb登錄的任何redirect_url?你能直接輸入你直接打的URL嗎?你的問題中的鏈接404 – 2013-06-04 19:32:47

+0

問題發生在本地版本上,重定向是http:/ /0.0.0.0:5000/login。 –

相關問題