我在从Facebook获取user_birthday的情况下遇到问题,我尝试了很多解决方案,我发现我无法从第一个身份验证登录中获取额外信息,所以我创建了另一个获取用户生日的请求,我尝试了很多接受解决方案 像this one 但即使我试图获得包含在public_profile中的age_range,我仍然无法获得用户电子邮件和生日日期
并且facebook用户将生日标记为公开 我尝试使用sociauth库但没有成功同样的问题
当我使用我的帐户时,我可以获得用户生日,这是应用程序的开发
最后我使用了loginbutton
这不是我喜欢的情况
authbutton.setReadPermissions(Arrays.asList("public_profile","user_birthday"));
有线的事情是我现在可以在不添加电子邮件权限的情况下收到电子邮件,但仍然可以使用birhtday和age_range获取null
这是我的登录按钮代码
authbutton=(LoginButton) findViewById(R.id.authButton);
authbutton.setReadPermissions(Arrays.asList("public_profile","user_birthday"));
// session state call back event
authbutton.setSessionStatusCallback(new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Log.i("tag","Access Token"+ session.getAccessToken());
Request.newMeRequest(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user,Response response) {
if (user != null) {
Log.i("tag","User ID "+ user.getId());
Log.i("tag","Email "+ user.asMap().get("email"));
lable.setText(user.getBirthday().toString());
}
}
}).executeAsync();
}
}
});
提前致谢
答案 0 :(得分:1)
lable.setText(user.asMap().get("birthday").toString());
可以尝试这种方式吗?
您登录测试的应用ID和FB ID应属于同一帐户。否则它将返回null ..