3

我正在使用 Facebook 的 PHP SDK 在我的网站中通过 Facebook 注册用户,有时我注意到用户图表中缺少电子邮件信息,但是,我有一个具有电子邮件权限的有效访问令牌。

这是我发送用户进行身份验证的 URL:

https://www.facebook.com/dialog/oauth?client_id=[FACEBOOK_APP_ID]&redirect_uri=[REDIR_URL]&**scope=email**,publish_stream,publish_actions,user_about_me,user_birthday,user_hometown,user_location,user_website

如果我检查https://graph.facebook.com/[USER_ID]/permissions?access_token=[ACCESS_TOKEN],我可以看到以下内容:

"data": [{
     "installed": 1,
     "status_update": 1,
     "photo_upload": 1,
     "video_upload": 1,
     **"email": 1,**
     "create_note": 1,
     "share_item": 1,
     "publish_stream": 1,
     "publish_actions": 1,
     "user_birthday": 1,
     "user_hometown": 1,
     "user_location": 1,
     "user_website": 1,
     "user_about_me": 1
}]

检查用户的详细信息会https://graph.facebook.com/[USER_ID]/?access_token=[ACCESS_TOKEN]显示所有内容,但缺少电子邮件字段。

问题可能出在哪里?请让我知道是否有一些有用的细节可以对此进行调查。

提前感谢您的建议。

4

2 回答 2

1

这很奇怪。通常,电子邮件地址总是email被授予权限返回 - 即使隐私设置将电子邮件地址隐藏给其他人。

可能是最初授予您的应用程序的电子邮件地址已被删除/更新。但是,我自己对此进行了测试,更新后的电子邮件地址仍然通过 API 提供。

Facebook 提交了一个关于此的错误。订阅该错误,希望它很快得到解决。

于 2012-05-31T08:44:26.077 回答
0

当用户授予权限时,他/她可以选择不与您的应用程序共享电子邮件信息。如果他/她没有授予权限,您必须检查它,您必须再次将用户重定向到权限链接,直到获得邮件地址。

于 2012-05-31T08:47:46.087 回答