0

ユーザーがアプリのカスタム ボタンをクリックすると、ユーザーの 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
4

2 に答える 2

0

できません。Facebook アプリとあなたのアプリは完全に独立しているため、ユーザーが Facebook アプリからログアウトしても、アプリにはわかりません。これを知る唯一の方法は、(session.closeAndClearTokenInformation を呼び出して) ユーザーをアプリからログアウトし、再度ログインを試みることです。

投稿ボタンの横にユーザーのプロフィール写真/名前を常に表示することをお勧めします。これにより、ボタンをクリックした人はそれが自分のプロフィール写真ではないことを認識し、ログアウトして自分自身としてログインできます。

于 2013-08-16T16:39:08.357 に答える