您好我尝试从登录用户获取用户名和用户ID。
我尝试在我的onActivityResult中使用此代码,但不会触发它。
感谢您的帮助:)
final Session session = Session.getActiveSession();
Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
// TODO Auto-generated method stub
if (session == Session.getActiveSession()) {
if (user != null) {
facebook_id = user.getId();//user id
facebook_name= user.getName();
Log.i("facebook_id", facebook_id);
Log.i("facebook_name", facebook_name);
new GetProfilePicture().execute();
}
}
}
});
Request.executeBatchAsync(request);
super.onActivityResult(requestCode, resultCode, data2);
答案 0 :(得分:2)
我强烈建议您在此处查看指南https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/
Best Explanation is available
Facebook Developers
对于您的案例,请按照第6步帮助您完全正确!
试试这个对我有用:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// start Facebook Login
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) {
facebook_id = user.getId();//user id
facebook_name= user.getName();
Log.i("facebook_id", facebook_id);
Log.i("facebook_name", facebook_name);
}
}
});
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}