如何从Facebook的SDK用户的生日?生日、用户、Facebook、SDK

2023-09-06 11:25:58 作者:滥情又专一

如何获得由 user.getBirthday用户的生日()

  Session.openActiveSession(这一点,真,新Session.StatusCallback(){
      //回调时,会话状态变化
      @覆盖
      公共无效呼叫(会话的会话,SessionState会状态,例外的例外){
        如果(session.isOpened()){

          //使请求/ ME API
          Request.executeMeRequestAsync(会话,新Request.GraphUserCallback(){

            //后与用户对象图形API响应回调
            @覆盖
            公共无效onCompleted(GraphUser用户,响应响应){
              如果(用户!= NULL){
                TextView的欢迎=(TextView中)findViewById(R.id.textView1);
                welcome.setText(你好+ user.getBirthday()+!);
                Log.d(user_birthday,user_birthday:+ user.getBirthday()); // user.getBirthday()该值总是为空?
              }
            }
          });
        }
      }
    });
 

解决方案

首先必须设置权限user_birthday?如果您要访问user_birthday信息,这是非常重要的。

如果用户不是空通常可以通过user.getBirthday得到的生日() 因为从我看到你正在使用的新的Facebook SDK

Facebook iOS SDK编程入门

您可以在使用Facebook的authbutton设置,例如允许

  authButton.setReadPermissions(Arrays.asList(user_location,user_birthday,user_likes));
 

也可以重新授权许可

  Session.ReauthorizeRequest reauthRequest =新Session.ReauthorizeRequest(本,权限)。
                    了setRequest code(REAUTHORIZE_ACTIVITY)。
                    setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
session.reauthorizeForPublish(reauthRequest);
 

在哪里权限是包含您的许可的数组

How to get user birthday by user.getBirthday() ?

Session.openActiveSession(this, true, new Session.StatusCallback() {
      // callback when session changes state
      @Override
      public void call(Session session, SessionState state, Exception exception) {
        if (session.isOpened()) {

          // make request to the /me API
          Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

            // callback after Graph API response with user object
            @Override
            public void onCompleted(GraphUser user, Response response) {
              if (user != null) {
                TextView welcome = (TextView) findViewById(R.id.textView1);
                welcome.setText("Hello " + user.getBirthday() + "!");
                Log.d("user_birthday","user_birthday:"+user.getBirthday());//user.getBirthday()  this value always is null?
              }
            }
          });
        }
      }
    });

解决方案

First of all have you set permission for user_birthday? it's very important if you want to access user_birthday information

if the user is not null usually you can get the birthday by user.getBirthday() because from what I see you're using the new facebook SDK

you can set permission for example when you using the facebook authbutton

authButton.setReadPermissions(Arrays.asList("user_location", "user_birthday", "user_likes"));

or you can reauthorize permission

Session.ReauthorizeRequest reauthRequest = new Session.ReauthorizeRequest(this, PERMISSIONS).
                    setRequestCode(REAUTHORIZE_ACTIVITY).
                    setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
session.reauthorizeForPublish(reauthRequest);

Where The PERMISSION is an array containing your permission