ユーザーがアプリのカスタム ボタンをクリックすると、ユーザーの facebook ウォールにコンテンツが公開されます。私の問題は、Facebook アプリがインストールされていて、ユーザーが初めてアプリにログインしたとき、またはユーザーが Facebook アプリにログインしたときです。ログアウトして別のアカウントでログインしようとすると、アプリを実行します。アプリは、2 番目のアカウントではなく、最初のアカウントの Facebook ウォールに公開されます。Facebookアプリにログインしている現在のユーザーを確認するにはどうすればよいですか??
public void onCreateSMWDLoginFBByAccessToken() {
Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
Session session = Session.getActiveSession();
if (session == null) {
session = new Session(ShareFacebookActivity.this);
Session.setActiveSession(session);
}
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
openSessionForPublish(session);
}
onClickLoginFB();
}
public void openSessionForPublish(Session session) {
Session.OpenRequest openRequest = new Session.OpenRequest(ShareFacebookActivity.this);
if (openRequest != null) {
openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);
openRequest.setPermissions(ConstantsFacebook.PERMISSIONS_PUBLISH);
openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
openRequest.setCallback(statusCallback);
session.openForPublish(openRequest);
}
}
private void onClickLoginFB() {
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
openSessionForPublish(session);
} else {
Session.openActiveSession(ShareFacebookActivity.this, true, statusCallback);
}
}
public class SessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state, Exception exception) {
// REFRESH FACEBOOK STATE
refreshStateSessionFB(session);
}
}
private void refreshStateSessionFB(Session session) {
if (session.isOpened()) {
Request.executeMeRequestAsync(session, statusUserFB);
}
}// end Method
public class SessionGraphUserStatusCallback implements Request.GraphUserCallback {
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
publishContent();
}
}// end OnCompleted
}// end Class