获取用户电子邮件服务器端的Facebook

时间:2014-10-15 13:37:13

标签: facebook-graph-api

所以我希望用我的服务器端代码获取用户的电子邮件地址。(我可以在客户端获取)我的应用范围设置为:

"scopes":["public_profile","email"]}

我目前能够做的是验证用户令牌是否有效。但我也想请求电子邮件 - 只是为了确保在服务器端,我可以将此人登录到我的网站。 我使用此地址来验证令牌属于我的应用程序:

https://graph.facebook.com/debug_token?input_token=%REPLACE%&access_token=%REPLACE%

如果我想在服务器端向用户发送电子邮件,我的请求应该如何?

3 个答案:

答案 0 :(得分:2)

出现另一个选项(一旦/您知道该令牌属于您的应用)是:

https://graph.facebook.com/me&access_token=USER_ACCESS_TOKEN

默认情况下,只返回id,如果你想要更多,请发送电子邮件:

https://graph.facebook.com/me?fields=email&access_token=USER_ACCESS_TOKEN

返回id和电子邮件。

答案 1 :(得分:1)

一个解决方案是:

https://graph.facebook.com/v2.1/<user_id>?access_token=<your_app_access_token>

将返回:

{
   "id": "<id>",
   "email": "mihkel\u0040gmail.ee",
   "first_name": "Mihkel",
   "gender": "male",
   "last_name": "Lastname",
   "link": "https://www.facebook.com/app_scoped_user_id/<id>/",
   "locale": "en_US",
   "name": "Mihkel Lastname"
}

如果您只需要电子邮件,则可以设置fields=email参数:)

答案 2 :(得分:0)

您需要USER ACCESS TOKEN来获取​​用户邮件ID,

您可以从API调用的响应中获取访问令牌 response.authResponse.accessToken;