Facebook javascript-sdk权限对话错误

时间:2012-04-05 10:19:24

标签: facebook facebook-javascript-sdk facebook-authentication

嗨,我很困惑最近出现在我的(较新的)应用程序中的Facebook-Error:应用程序工作正常,直到我禁用沙箱模式并尝试以普通用户身份测试应用程序。

当按照普通用户点击登录按钮时,我得到:
"发生错误。请稍后重试"或者有时:" API错误说明:发生未知错误错误消息:kError 1349045:找到了无效的平台会话:找到了无效的平台会话。" 有时会出现正常的Permission-Dialog,但在询问扩展权限后我也会收到错误...

这是我的代码:

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网址和网站。对于应用程序的管理员一切正常... 有没有人知道我做错了什么或有同样的问题?

1 个答案:

答案 0 :(得分:0)

当您设置Facebook应用程序时,您可以设置可以使用它的URL。 我的猜测是你试图从不同于facebook应用程序设置的域中加载你的这个页面。

在Facebook应用设置中,你应该在网站 - 网站网址中设置一些内容,然后你需要从同一个域加载带有js sdk的页面。

如果需要,您可以在设置页面的 App Domain 中设置其他域,但所有域必须从您的站点URL 派生。

我创建了一个非常简单的页面,只加载了js sdk,然后尝试调用 FB.login ,然后我在同一个域上测试它,就像在设置中为该应用程序设置的那样页面,一切都很好。 然后我将该文件复制到我的localhost并在那里试了一下,确实我收到了你描述的相同错误。