【问题标题】:Some users email does not return from Facebook API call某些用户的电子邮件不会从 Facebook API 调用返回
【发布时间】:2013-08-30 00:39:25
【问题描述】:

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

谢谢!

【问题讨论】:

  • 这个问题给我带来了很多麻烦。您是否遇到过任何改进或解决方法??
  • 我也面临同样的问题,如果您有任何解决方案,请告诉我..

标签: facebook facebook-graph-api facebook-javascript-sdk


【解决方案1】:

这不是问题的解决方案,但我最近已经解决了这个问题。

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

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

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 2012-12-10
    • 2013-05-13
    • 2017-09-29
    相关资源
    最近更新 更多