0

嗨,我很疑惑最近在我的(新的)應用程序中彈出的Facebook錯誤:應用程序工作正常,直到我禁用沙箱模式並嘗試測試應用程序作爲普通用戶。Facebook javascript-sdk權限對話框錯誤

當點擊登錄按鈕作爲普通用戶,我得到:
「發生錯誤,請稍後再試。」有時:「API錯誤說明:出現未知的錯誤錯誤消息:kError 1349045:無效的平臺會議被發現:一個無效的平臺會話被發現。「 有時正常的權限,對話框顯示,但要求擴大權限後,我也得到了錯誤...

這裏是我的代碼:

window.fbAsyncInit = function() { 
    FB.init({ 
appId  : 'XXXXXXXXXX', // App ID 
     channelUrl : '//' + window.location.hostname + '/fbchannel.html', // Channel File 
     status  : true, // check login status 
     cookie  : false, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

}; 

    $(function(){ 
     $('.login').click(function(e) { 
      e.preventDefault(); 
      FB.login(function(response) { 
       if (response.authResponse) { 
        FB.api('/me', function(response) { 
         $('#output').text('Good to see you, ' + response.name + '.'); 
        }); 
       } else { 
        $('#output').text('User cancelled login or did not fully authorize.'); 
       } 
      }, {scope: 'email, user_photos, publish_stream, user_likes'}); 

      // 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)); 

我已經嘗試啓用/禁用增強權威性對話框和域名,facebook-app url和網站設置正確。對於應用程序的管理一切工作正常... 有沒有人有一個想法,我做錯了什麼或有同樣的問題?

+0

爲什麼在* FB.init *中爲cookie參數傳遞* false *? – 2012-04-05 11:05:28

+0

這只是爲了測試。 cookie true也不起作用... – Matschi 2012-04-05 12:38:08

回答

0

當你設置一個Facebook應用程序時,你設置了可以使用它的url。 我的猜測是,你正嘗試從一個不同於facebook應用設置中的域的頁面加載你的這個頁面。

在facebook應用程序設置中,您應該在網站 - 站點Url中設置一些內容,然後您需要使用來自同一個域的js sdk加載頁面。

如果你願意,你可以設置在應用程序域在設置頁面其他領域,但所有的域有必須從你的網站URL導出。

我創建了一個非常簡單的頁面,只有加載JS SDK,然後嘗試撥打的FB.login,然後我測試了它在同一個域,因爲它被設置在設置頁的應用程序,一切工作大。 然後我將該文件複製到我的本地主機,並在那裏嘗試,並且確實收到了您描述的同樣的錯誤。