简单的Facebook登录脚本不起作用

时间:2013-01-03 05:39:11

标签: facebook login facebook-javascript-sdk

我试图让用户登录到Facebook,然后在警报中显示他们的用户ID。

然而,这段代码我没有得到任何回报。我做错了什么?

<html>                                                                                                                                                                      
   <head>                                                                                                                                                                    
     <title>Login to Facebook</title>                                                                                                                                                  
   </head>                                                                                                                                                                   
  <body>
      <div id="fb-root"></div>
      <script>
        window.fbAsyncInit = function() {
          FB.init({
            appId      : 'APP ID',
            channelUrl : 'http://www.mydomain.net/zoozTest/channel.html',
            status     : true, 
            cookie     : true,
            xfbml      : true,
            oauth      : true,
          });
        };
        (function(d){
           var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
           js = d.createElement('script'); js.id = id; js.async = true;
           js.src = "//connect.facebook.net/en_US/all.js";
           d.getElementsByTagName('head')[0].appendChild(js);
         }(document));

       //LOGIN FUNCTION 
       function login() {
        FB.login(function(response) {
            if (response.authResponse) {
                alert('Success!');
            }else{
                alert('Login Failed!');
            }
        }, {scope: 'email'});
     }
      </script>
      <div onclick="login();">Login with Facebook</div>
    </body>                                                                                                                                                                  
 </html>

1 个答案:

答案 0 :(得分:1)

您的代码,逐字复制,对我来说很好。三件事:

1:愚蠢的问题,但您已将“APP ID”替换为您的实际应用ID,对吧?否则那将是一个错误

2:检查您的应用设置。您是否正确指定了自己的应用域名和“带有Facebook登录网站”的网址?

3:从技术上讲,你有竞争条件。如果单击“使用Facebook登录”div并尝试在FB JS SDK初始化之前运行login()函数(它以异步方式加载),则会收到错误,因为不会定义全局FB对象。我会在window.fbasyncinit函数的底部粘贴一个console.log以确保定义FB(对于测试,对于生产,你可能想要阻止登录在Facebook被引入之前显示,或者构建一些一种队列,在尝试使用它之前检查是否定义了全局FB对象,如果没有,则添加到队列中。

你在javascript控制台中有错误吗?