facebook - 某些用户的电子邮件未从 Facebook API 调用返回

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

我有一个 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 分配了一个电子邮件地址,其 ID 为: [username]@facebook.com ,如果请求未返回用户的电子邮件地址,我决定使用此电子邮件。

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

再次强调,这不是解决方案,只是一种解决方法。

希望这有帮助。

关于facebook - 某些用户的电子邮件未从 Facebook API 调用返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13886684/

相关文章:

ios - Facebook 和 Twitter 分享按钮停止工作

android - Google 登录按钮没有任何反应

注销和登录时 ios Facebook 集成错误

ios - SLComposeViewController Facebook 发布为 iOS 而不是 Facebook 应用程序标识符

iOS Facebook SDK startWithGraphPath :parameters post to just SOME friends programmatically

facebook - FB.login() inside inapp 浏览器(无弹出窗口)

ruby-on-rails-3 - 我从哪里获取访问 token 以使用 Rails 3 中的 FBGraph gem 发布到我的 facebook 页面?

Facebook Graph API - 来自事件的大图像?

javascript - Facebook 分享或取消后出现空白页面

ios - 保持 Phonegap-Facebook-Plugin/Facebook JS api 用户登录到应用程序的正确方法?