window.fbAsyncInit / FB.init似乎没有运行

时间:2012-01-26 20:30:49

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

我刚刚开始使用Facebook JavaScript SDK,我想要做的就是让用户使用他们的FB帐户登录我的网站。首先,我放入了<div class="fb-login-button">Login with Facebook</div>和样板文件,就像在developers.facebook.com/docs/guides/web/#login

中的Facebook for Websites文档中所说的那样。

我单击FB登录按钮,弹出窗口,单击允许...但没有任何反应。我无法在任何地方找到像fbsr_APPID这样的cookie(例如Request.Cookies("fbsr_MYAPPID")没有任何内容),并且页面没有重定向到我在应用程序设置中指定的站点URL。我在调试中添加了一些JavaScript,并且实际上什么都没有。

window.fbAsyncInit = function () {
    FB.init(
{
    appId: 'MYAPPID',
    channelUrl: http://bla,
    status: true,
    cookie: true,
    xfbml: true,
    oauth: true
});
    // Additional initialization code here
    alert("Please just prove this init code is running at all!!!!");

    FB.Event.subscribe('auth.login', function (response) {
        alert('Logged in: ' + response);
    }
    );

    FB.getLoginStatus(function (response) {
        alert('Check login: ' + response);
        if (response.authResponse) {
            var access_token = response.authResponse.accessToken;
            alert('Access token yay! ' + access_token);
        }
    });
};

没有任何警报显示或任何显示,导致我认为整个脚本无法运行。

我从那个facebook按钮切换到developers.facebook.com/docs/authentication中描述的服务器端身份验证链接,这次重定向肯定发生了,我得到了一个 code = 查询参数,但我得到相同的[缺少]结果运行任何FB.JavaScript方法,在Init或作为事件处理程序。我仍然找不到一个facebook cookie(也许服务器端方法永远不会产生一个?)但是我想用Ajax调用或者其他东西我将能够使用代码来获取access_token(它会很好如果FB的文档提供了关于如何使用该代码的一些提示,但这是另一个问题。)

即使我尽可能地放弃Facebook的JavaScript SDK并依赖服务器端脚本,我也应该能够至少使用FB.getLoginStatus。我能做错什么?

1 个答案:

答案 0 :(得分:4)

我已将问题缩小到这一行

channelUrl: http://bla,

它应该读取(当然有你的频道文件的真实网址:

channelUrl: 'http://bla',

相关问题