Reputation: 63
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?
}
}
});
}
}
});
Upvotes: 4
Views: 11259
Reputation: 1256
Small tip: It is possible to request permissions with the initial open-session request, thus no need for re-authorization:
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 - your activity context.
Hope this helps somebody.. :)
Upvotes: 0
Reputation: 11112
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
Upvotes: 7