【发布时间】:2016-03-22 00:05:18
【问题描述】:
我在从 Facebook 获取 user_birthday 的场景中遇到问题,我尝试了很多解决方案,但我发现我无法从第一次身份验证登录中获取额外信息,所以我创建了另一个获取用户生日的请求,我尝试了很多接受的解决方案 喜欢this one 但是即使我尝试获取包含在 public_profile 中的 age_range 也一无所获,我仍然无法获取用户电子邮件和生日
Facebook 用户的生日被标记为公开 我尝试使用 socialuth 库但没有成功同样的问题
当我使用我的应用程序开发帐户时,我可以得到用户的生日
最后我使用了loginbutton,这不是我在获得许可的情况下的首选方案
authbutton.setReadPermissions(Arrays.asList("public_profile","user_birthday"));
有线的事情是我现在可以在不添加电子邮件权限的情况下接收电子邮件,但仍然会在生日和年龄范围内为空
这是我的登录按钮代码
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();
}
}
});
提前致谢
【问题讨论】:
-
谢谢,但这是一个旧教程,我想使用新的 api
-
使用这个可能是你得到 String 生日 = user.getInnerJSONObject().getString("birthday");
-
@prakash 我用了这个,所以生日没有价值
-
@HareshChhelana 我检查了它,甚至我无法获得包含在 public_profile 中的 age_range
标签: java android facebook facebook-graph-api