-1

我正在尝试将其合并facebook login button到我网站的主页中。我已经将它与一个应用程序连接起来,所以如果用户已经注册,我有app idand 。secret

我使用了JavaScript SDK来自 facebook,但是当我按下 facebook 的登录按钮时,授权后,什么也没有发生,我的网站主页再次显示。有谁知道如何user's email从 Javascript SDK 获取?我想在登录后重定向到另一个页面,但登录后它只停留在那个页面上。

<div id="fb-root"></div>
 <script>

   window.fbAsyncInit = function() 
   {

       FB.init({
          appId      : '178124332351909', // App ID
          channelUrl : 'channel.html', // Channel File
          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true  // parse XFBML
       });

       FB.Event.subscribe('auth.authResponseChange', function(response) 
       {
           if (response.status === 'connected') 
           {
               alert("connected");
               testAPI();
           } 
           else if (response.status === 'not_authorized') 
           {
               alert("nt connected");
               FB.login();
           } 
           else 
           {
               alert("else");
               FB.login();
           }
      });
    };

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

     // Here we run a very simple test of the Graph API after login is successful. 
     // This testAPI() function is only called in those cases. 
     function testAPI() 
     {
        alert("in testapi");
        console.log('Welcome!  Fetching your information.... ');
        FB.api('/me', function(response) 
        {
            console.log('Good to see you, ' + response.name + '.');
        });
     }

 </script>

参考:添加登录代码

请帮助如何重定向到另一个页面。

4

2 回答 2

0
  1. 要请求 的权限email,请替换Fb.login()为:

    FB.login(function(response)
    {
        if(response.status == 'connected'){
            alert('I am connected')
        }
    },{scope: 'email'});
    
  2. 用户登录成功后重定向到其他页面,只需在testAPI()函数中编写重定向代码即可:

    function testAPI()
    {
        alert("in testapi");
        console.log('Welcome!  Fetching your information.... ');
        FB.api('/me', function(response) 
        {
           console.log('Good to see you, ' + response.name + '.');
        });
        window.location="http://www.newlocation.com";  // HERE
    }
    
于 2013-05-30T07:05:56.017 回答
0

可能有1个原因:

  • 当您单击登录按钮时>>它会尝试打开弹出窗口>>如果“允许弹出被阻止”>>然后它将刷新页面,用户会认为没有任何事情发生。

如果您想获取用户的电子邮件,那么您可以将其作为“perms”参数传递,如下所示。

<div class="fb-login-button" onclick="fbLoginClick();" perms="email"><div>
于 2014-03-02T20:23:09.613 回答