Facebook 登录用户';电子邮件地址

Facebook 登录用户';电子邮件地址,facebook,email,Facebook,Email,我无法获取用户的电子邮件地址,即使我已将该电子邮件添加到应用程序的扩展权限中 这是我在编辑应用程序详细信息时得到的预览框 但我无法获得登录用户的电子邮件地址 这是我用来获取用户信息的url https://graph.facebook.com/me?fields=first_name,last_name,email,gender&access_token=+accessToken 这是我从facebook上得到的数据 { "first_name": "Varun", "l

我无法获取用户的电子邮件地址,即使我已将该电子邮件添加到应用程序的扩展权限中

这是我在编辑应用程序详细信息时得到的预览框

但我无法获得登录用户的电子邮件地址

这是我用来获取用户信息的url

https://graph.facebook.com/me?fields=first_name,last_name,email,gender&access_token=+accessToken
这是我从facebook上得到的数据

{
   "first_name": "Varun",
   "last_name": "Achar",
   "gender": "male",
   "id": "1XXXXXX66660851"
}
有什么想法吗?

我不知道为什么认证推荐方法对您不起作用,但以下是您如何请求电子邮件地址并通过其他两种方式获得它(不过您需要停用认证推荐):

(1) -当facebook加载您的画布页面时,它会通过发布到您的画布url,并提供*signed_request*参数来实现。这样,您就可以检查用户是否经过身份验证(如果是,您就可以获得访问令牌和有关用户的其他信息,比如他的fb用户id)。 如果用户未通过身份验证,请将其发送到以下url:

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_url=YOUR_REDIRECT_URI&scope=email,publish_stream,etc
当用户返回时,您应该有一个经过身份验证的签名请求

(2) -使用javascript sdk在画布页面中对用户进行身份验证

获得访问令牌后,您可以通过向以下地址发出请求来获取电子邮件地址:

https://graph.facebook.com/me?fields=email
或者从客户端,您可以使用:

FB.api("me?fields=email", function(response) {
    console.log(response);
});

编辑 你应该看报纸吗?尤其是。
它显示了一个如何使用它并请求更多权限(使用scope参数)的示例。

这就是我最终使它工作的方式。无法通过身份验证转介使其工作,因此必须执行此操作

FB.login(function(resp)
{
  // Handle the response.
}
, {scope: "email, user_relationships"});

这种情况是否只发生在您的用户身上,或者您是否知道其他用户(使用您的应用程序)获得了相同的结果?另外,对于同一个用户,您是否获得了邮件地址?(使用Graph API浏览器,只需添加电子邮件权限)否。。不要在API explorer中获取电子邮件地址。在API explorer中,电子邮件权限是扩展权限的一部分,但在应用程序编辑页面中,它是正常权限的一部分。当我在api资源管理器中添加电子邮件扩展权限时,我是否能够获取电子邮件地址应用程序编辑页面?什么意思?您是如何申请权限的?你指的是经过认证的推荐吗?是的。在经过身份验证的推荐中,电子邮件是用户和朋友权限列表的一部分,但在Graph API Explorer中,电子邮件是扩展器权限的一部分。我可以在Graph API Explorer中获取电子邮件地址,但不能通过应用程序获取,即使我已在“已验证的引用”页面中请求电子邮件的权限。客户端验证中提到的两种方法都不提供电子邮件地址。正如问题中提到的,我之前也试过这个。你读过吗?尤其是那个角色?它显示了一个如何使用它和请求更多权限(使用scope参数)的示例。请将上面的注释转换为答案,以便我可以接受它。虽然我认为,如果你真正需要的是评论,那么接受答案是可以的。为了其他人的利益,我要求你把它转移到答案部分。不是每个人都读评论。他们可能会感到困惑,为什么一个公认的答案对他们不起作用。可能会导致稍后的否决票……)