10

我打电话

https://graph.facebook.com/<user_id>/?access_token=<valid_token>

要不就

https://graph.facebook.com/me/?access_token=<valid_token>

并取回不包含我需要的主要用户电子邮件的 json 对象。我为应用程序设置了电子邮件权限,但没有效果。有什么问题?

4

5 回答 5

8

您还记得在登录请求中询问电子邮件权限吗?您可以通过在登录请求 (&scope=email) 中添加类似这样的范围参数来执行此操作:

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&state=SOME_ARBITRARY_BUT_UNIQUE_STRING&scope=email

Facebook API 参考

于 2013-01-03T14:11:41.707 回答
7

您可能没有email访问令牌的权限。

您可以使用Acess Token Debugger进行验证

于 2013-01-03T14:10:39.237 回答
3

我相信您的问题是,即使在授予访问电子邮件的权限后,您也无法通过 Graph API 获取电子邮件信息。在较新的版本中,您需要将字段参数传递给 API 以获取其他信息,例如电子邮件。默认情况下,它只提供 id 和 name 作为响应。请在下面找到有关如何从图表中获取其他信息的示例:

https://graph.facebook.com/me?fields=id,email,first_name,gender,last_name,link,locale,name,timezone,updated_time,verified&access_token=<value of access_token>&debug=all

希望这可以帮助。

于 2016-02-07T18:11:43.717 回答
3

电子邮件可能未在 facebook 中验证。在这种情况下,facebook 不会通过 API 提供它。确保您的代码处理这种情况。

于 2016-07-15T13:29:11.543 回答
1

自 API 版本 2.5 发布以来,您可以获得如下用户电子邮件:https://graph.facebook.com/v2.5/me?fields=id,name,email

于 2017-08-03T11:06:03.877 回答