古いバージョンの Facebook SDK を新しいバージョン 4.x に変更し、ログイン マネージャーを介してログインを正常に統合しました。
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
Profile profile = Profile.getCurrentProfile();
fb_first_name = profile.getFirstName();
fb_last_name = profile.getLastName();
facebookId = profile.getId();
Log.print("System out", "fb_first_name-------------> "+fb_first_name+"\fb_last_name-------------> "+fb_last_name+"fbID-------------> "+facebookId);
}
@Override
public void onCancel() {
// App code
Toast.makeText(getApplicationContext(), "onCancel ", Toast.LENGTH_LONG).show();
}
@Override
public void onError(FacebookException exception) {
// App code
Toast.makeText(getApplicationContext(), "onError" +exception.toString() , Toast.LENGTH_LONG).show();
}
});
しかし、logout
あるユーザーとlogin
別のユーザーからのプロファイル表示は、古いユーザーのものです。新しいユーザーのプロファイルを取得するにはどうすればよいですか? 更新されたプロファイルを取得するために、以下のコードも試しました。
profileTracker = new ProfileTracker() {
@Override
protected void onCurrentProfileChanged(
Profile oldProfile,
Profile currentProfile) {
// App code
fb_first_name = currentProfile.getFirstName();
fb_last_name = currentProfile.getLastName();
facebookId = currentProfile.getId();
Log.print("System out", "fb_first_name-------------> "+fb_first_name+"\fb_last_name-------------> "+fb_last_name+"fbID-------------> "+facebookId);
Toast.makeText(getApplicationContext(), "onSuccess"+currentProfile.getName(), Toast.LENGTH_LONG).show();
handler.sendEmptyMessage(0);
}
};