繁体   English   中英

无法从facebook获取user_birthday

[英]cannot get user_birthday from facebook

我在从Facebook获取user_birthday的场景中遇到问题,我尝试了许多解决方案,但发现无法从第一次身份验证登录中获取额外信息,因此我创建了另一个获取用户生日的请求,并尝试了许多接受的解决方案,例如这一,但即使我尝试获取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();

              }

       }
     });

提前致谢

lable.setText(user.asMap().get("birthday").toString());

可以这样尝试吗?

您登录以测试的应用程序ID和FB ID应该使用相同的帐户。 否则它将返回null。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM