0

我第一次尝试 FB 登录网站。我可以看到 FB 按钮,并且弹出窗口显示似乎是正确的 FB 登录以及我的应用程序名称,所以我认为这部分很好。我的问题是单击登录后我输入用户/密码,然后窗口关闭,没有其他反应。我知道我已登录,因为当我再次单击 FB 时,它会弹出并关闭,所以我想它知道我已登录 FB。但是我看不到任何要写入控制台的调用,并且我不确定如何在登录后使它执行其他操作...也许我不明白登录 FB 成功后会发生什么,我错过了什么吗? . 这是我到目前为止所尝试的。

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

    function doLogin() {
    FB.login(function(response) {
       if (response.authResponse) {
         console.log('Hello!  Getting account information.... ');
         FB.api('/me', function(response) {
           console.log('Hello, ' + response.name + '.');
         });
       } else {
         console.log('User not fully authorize.');
       }
     });
    }
          // 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));

    function testFbLogin() {

        console.info("Testing you are Logged in...");

    }
4

1 回答 1

0

在您的 FB 应用程序配置中,有此应用程序可以使用的域和子域的设置。

我猜您正在尝试使用某些开发机器的登录名,其名称与您的 FB 应用程序的域和子域的配置参数不匹配。

如果您检查网络通信(Crome 开发人员工具非常出色且易于使用),您将看到 FB 返回的错误,这将使您更好地了解发生了什么。

如果是这种情况,那么: 打开 /etc/hosts (unix) 或 C:\WINDOWS\system32\drivers\etc\hosts。如果您配置的域是 example.com,则添加以下行:

127.0.0.1    dev.example.com

测试时,在浏览器中打开 dev.example.com,它应该可以工作。

作为替代方案,您可以在 FB 编辑您的应用程序并将“站点 URL”设置为

http://localhost/myapppath or only http://localhost

于 2013-08-25T03:22:34.570 回答