用户电子邮件为空 - 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);
我能够成功地得到用户的名字,姓氏和名字,但它返回null
为email
(user.getEmail();
)。
我的Facebook的应用程序有默认权限为:
任何帮助我,我怎么可以访问用户的电子邮件吗?
UPDATE
我一直在努力的graph-api
资源管理器,看看有什么我得到了email
和它说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
描述试试这个
User me = client.fetchObject(yourId, User.class,Parameter.with("fields", "email"));
你能告诉我如何给更多的参数? – 2015-09-11 17:49:32
只需将逗号分隔的所有参数以逗号分隔即可。 (“fields”,“email,first_name,last_name”)等 – 2015-09-23 02:26:30
在这里您可以找到可用的字段:https://developers.facebook.com/docs/graph-api/reference/user – 2016-09-04 11:47:31
我怎么请求范围'email'许可? – 2014-10-11 21:01:16
我已更新我的问题。请检查 – 2014-10-11 21:22:09
感谢您的答案。我现在有一些问题......如果用户编辑偏好设置并取消不提供电子邮件,该怎么办?我以后怎样才能收到他的电子邮件?可以请求多个范围,以及如何? – 2014-10-11 22:06:46