3

我有一个 Facebook 应用程序,我使用 JavaScript JDK。

我很好地请求了电子邮件许可:

对于新用户,我重定向到授权窗口:

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 的响应中收到电子邮件,而对于其他未定义的用户。有什么问题?

谢谢!

4

1 回答 1

5

这不是问题的解决方案,但我最近已经解决了它以使其工作。

因为,facebook 为所有 facebook 用户分配了一个带有 id 的电子邮件地址: [username]@facebook.com ,如果请求没有返回用户的电子邮件地址,我决定使用这封电子邮件。

IE

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

同样,这不是解决方案,只是一种解决方法。

希望这可以帮助。

于 2013-08-29T07:13:59.603 回答