2016-02-27 196 views
0

我寫這段代碼。如果用戶之前登錄過,它可以正常工作,但如果用戶沒有登錄到Facebook,他將被重定向到Facebook登錄頁面,並且在成功登錄後,他重定向到之前在開發人員提供的頁面。 facebook.com/app。在這種情況下,我無法獲取用戶信息。下面是我的代碼:如何獲取用戶使用javascript登錄Facebook時的信息

<html> 
<body> 
    <script> 
     var client_id = my_client_id; 
     var url  = 'http://localhost/myitems.html'; 
     var scope  = 'email,public_profile'; 

     window.fbAsyncInit = function() { 
      FB.init({ 
       appId  : client_id, 
       xfbml  : true, 
       status  : true, 
       version : 'v2.5' 
      }); 
     }; 

     (function(d, s, id){ 
      var js, fjs = d.getElementsByTagName(s)[0]; 
      if (d.getElementById(id)) {return;} 
      js = d.createElement(s); js.id = id; 
      js.src = "//connect.facebook.net/en_US/sdk.js"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 

     function loginFacebook(){ 
      FB.getLoginStatus(handleLoginFacebook); 
     } 

     function handleLoginFacebook(res){ 
      if(res.status==='connected'){ 
       var user={}; 
       user.access_token=res.authResponse.accessToken; 

       FB.api('/me?fields=email,first_name,last_name,picture',function(res){ 
        alert(JSON.stringify(res)); 
        user.first_name = res.first_name; 
        user.last_name = res.last_name; 
        user.network  = 'facebook'; 
        user.image  = res.picture; 
        user.network_id = res.id; 
        user.deviceToken = 0; 
        user.email  = res.email; 
        loginSocial(user, function(data){ 
         var d=JSON.stringify(data); 
         alert(d); 
         d=JSON.parse(d); 

         if(d.success==true){ 
          store(d); 
          window.location='myitems.html'; 
         }else{ 
          window.location='index.html'; 
         } 
        }); 
       }); 
      }else{ 
       window.location='https://www.facebook.com/dialog/oauth/?client_id='+client_id+'&redirect_uri='+url+'&scope='+scope; 
      } 
     } 
    </script> 

    <button onclick='loginFacebook()'>Facebook Login</button> 
</body> 
</html> 

回答

0

你別的應該是這樣的:

FB.login(function (response) { 
    //Get date here from the response.authResponse 
    //In 'scope:' declare the scope of information you need 
}, {scope: 'email, public_profile, user_friends', return_scopes: true}); 
+0

尼古拉,我要重新導向至Facebook登錄頁面,而不是彈出窗口。讓我清楚。當用戶點擊它時,我有一個按鈕,它們被重定向到Facebook登錄頁面。在Facebook上成功登錄後,重定向到我的頁面,現在這就是我需要的,意味着當前用戶 – korush

相關問題