簡體   English   中英

如何從facebook sdk獲得用戶生日?

[英]how to get user birthday from facebook sdk?

如何通過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?
              }
            }
          });
        }
      }
    });

首先,您是否設置了user_birthday的權限? 如果您想訪問user_birthday信息,這一點非常重要

如果用戶通常不是null,則可以通過user.getBirthday()獲取生日,因為從我看到你正在使用新的facebook SDK

例如,當您使用facebook authbutton時,您可以設置權限

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

或者您可以重新授權

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

其中PERMISSION是包含您的許可的數組

小提示:可以使用初始打開會話請求請求權限,因此無需重新授權:

final Session.OpenRequest request = new Session.OpenRequest(Activity.this);
request.setPermissions(Arrays.asList("email", "user_birthday")); // Your permissions here
request.setCallback(new Session.StatusCallback()
{
    @Override
    public void call(final Session session, SessionState state, Exception exception)
    {
        if (session.isOpened())
        {
            // Your code here
        }
    }
});

Session fbSession = Session.getActiveSession();
if (fbSession == null || fbSession.isClosed())
{
    fbSession = new Session(Activity.this);
    Session.setActiveSession(fbSession);
}

fbSession.openForRead(request);

Activity.this - 您的活動背景。

希望這有助於某人.. :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM