2012-12-14 23 views
3

我有一個Facebook應用程序,並使用JavaScript JDK。某些用戶的電子郵件不會從Facebook API調用返回

林請求的電子郵件的權限以及:

對於新用戶我重定向到授權窗口:

top.location = 'https://graph.facebook.com/oauth/authorize?client_id=' + APP_ID + '&scope=email&redirect_uri=XXX'; 

然後嘗試提取它:

FB.getLoginStatus(function (response) { 
    if (response.authResponse) { 
     FB.api('/me', function (response) { 
      console.log(response.email); 
     } 
    } 
} 

對於現有用戶(在他們的電子郵件是不確定的)我甚至嘗試重新請求電子郵件許可並重新提取它:

FB.login(function(response){ 
    if(response.status == 'connected'){ 
      FB.api('/me?fields=email,id', function(response) { 
        console.log(response.email); 
       }); 
    } 
},{scope: 'email'}); 

問題是,對於某些用戶,我在/ me和其他未定義的響應中收到了電子郵件。 什麼可能是錯的?

謝謝!

+0

這個問題引起了我很多麻煩。你有沒有遇到任何進步或解決方法? –

+0

我也面臨同樣的問題,如果你有任何解決方案,請讓我知道.. –

回答

5

這不是問題的解決方案,但我最近爲解決這個問題而努力。

因爲,所有Facebook用戶都被分配了一個Facebook的電子郵件地址,其ID爲: [username]@facebook.com,如果請求沒有返回用戶的電子郵件地址,我決定使用此電子郵件。

$email = isset($fb_user["email"])?$fb_user["email"]:$fb_user["username"] . "@facebook.com"; 

再次,這不是解決方案,只需一種解決方法。

希望這會有所幫助。

相關問題