gpt4 book ai didi

javascript - Facebook Graph 不返回电子邮件

转载 作者:数据小太阳 更新时间:2023-10-29 04:16:04 24 4
gpt4 key购买 nike

更新 我的个人电子邮件地址似乎多年未被使用。 Facebook 将其标记为非事件状态,并且没有将其作为 JSON 的一部分返回。

我正在使用此 url 在客户端对 Facebook 用户进行身份验证:

https://www.facebook.com/dialog/oauth?
client_id=xxx&
redirect_uri=https://www.facebook.com/connect/login_success.html&
scope=email

我收到一个代码,然后用它交换 token :

https://graph.facebook.com/oauth/access_token?
code=xxx&
client_id=xxx&
client_secret=xxx&
redirect_uri=xxx

然后我将 token 发送到我的服务器并获取 Fb Graph 以获取一些用户信息,包括电子邮件。

 https://graph.facebook.com/me?access_token=xxx

出于某种原因,我得到了所有用户的“关于”信息,但不是他/她的电子邮件!

我做错了什么?

最佳答案

根据Facebook Documentation :

By default, not all the fields in a node or edge are returned when you make a query. You can choose the fields (or edges) you want returned with the "fields" query parameter. This is really useful for making your API calls more efficient and fast.

这从 v2.4 开始有效,(以前的版本检索了一些默认字段)。

当您注册一个新应用程序时,您会自动(无需人工审核)获得三个权限:电子邮件、public_profile 和 user_friends。在您的代码中,“电子邮件”在范围内(这很好),因此只需将您的查询更改为:

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

您可能需要在以前版本的 API 中自动获取的 public_profile 字段。这样做,将“public_profile”添加到您的范围:

https://www.facebook.com/dialog/oauth?
client_id=xxx&
redirect_uri=https://www.facebook.com/connect/login_success.html&
scope=email,public_profile

现在将用户名字段添加到您的查询中:

https://graph.facebook.com/me?access_token=xxx&fields=first_name,last_name,gender,email,timezone,age_range,verified

祝你好运

关于javascript - Facebook Graph 不返回电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18387994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com