我最近开始研究facebook的manual login flow。然后按此blog获取访问令牌,并使用restfb访问用户信息 以下是提到的代码段 - Fetching Single Objects:
FacebookClient facebookClient = new DefaultFacebookClient(ACCESS_TOKEN, APP_SECRET);
User user = facebookClient.fetchObject("me", User.class);
我已成功获取用户的姓名,名字和姓氏,但它会为null
(email
)返回user.getEmail();
。
我的脸书应用拥有默认权限:
任何人都可以帮助我如何访问用户电子邮件?
更新
我一直在尝试使用graph-api
资源管理器查看我为email
获取的内容
它说Field is empty or disallowed by the access token
。我该怎么做才能解决这个问题?
答案 0 :(得分:8)
试试这个
User me = client.fetchObject(yourId, User.class,Parameter.with("fields", "email"));
答案 1 :(得分:0)
用户未列出其电子邮件,或者您未在范围内请求email
权限。
检查您对email
me/permissions
权限
在提到的博文中,应email
设置getLoginRedirectURL
。要在通过登录对话框时确保这一点,请检查Facebook登录对话框是否要求提供电子邮件权限。
手动流程
中也对此进行了描述 https://www.facebook.com/dialog/oauth?
client_id={app-id}
&redirect_uri={redirect-uri}&scope=email