用户电子邮件为空 - restfb

问题描述:

我最近开始致力于facebook的manual login flow。并按照此blog获取访问令牌并使用restfb访问用户信息。
下面是提到的代码片段 - Fetching Single Objects用户电子邮件为空 - restfb

FacebookClient facebookClient = new DefaultFacebookClient(ACCESS_TOKEN, APP_SECRET); 
User user = facebookClient.fetchObject("me", User.class); 

我能够成功地得到用户的名字,姓氏和名字,但它返回nullemailuser.getEmail();)。

我的Facebook的应用程序有默认权限为: permissions

任何帮助我,我怎么可以访问用户的电子邮件吗?

UPDATE

我一直在努力的graph-api资源管理器,看看有什么我得到了email graph-api explorer 和它说Field is empty or disallowed by the access token。我应该怎么做才能解决这个问题?

用户没有列出他的电子邮件,或者您没有请求范围内的email权限。

检查是否有email权限一起me/permissions

的请求在该博客中提到的email应在getLoginRedirectURL进行设置。为了确保您在浏览登录对话框时检查Facebook登录对话框是否要求获得电子邮件许可。

这也是在手动流量

https://www.facebook.com/dialog/oauth? client_id={app-id} &redirect_uri={redirect-uri}&scope=email

+0

我怎么请求范围'email'许可? – 2014-10-11 21:01:16

+0

我已更新我的问题。请检查 – 2014-10-11 21:22:09

+0

感谢您的答案。我现在有一些问题......如果用户编辑偏好设置并取消不提供电子邮件,该怎么办?我以后怎样才能收到他的电子邮件?可以请求多个范围,以及如何? – 2014-10-11 22:06:46

描述试试这个

User me = client.fetchObject(yourId, User.class,Parameter.with("fields", "email")); 
+0

你能告诉我如何给更多的参数? – 2015-09-11 17:49:32

+1

只需将逗号分隔的所有参数以逗号分隔即可。 (“fields”,“email,first_name,last_name”)等 – 2015-09-23 02:26:30

+0

在这里您可以找到可用的字段:https://developers.facebook.com/docs/graph-api/reference/user – 2016-09-04 11:47:31