0

Facebook に 2 回目にログインしようとすると問題が発生します。ユーザーが資格情報を初めて入力すると、バックグラウンドでいくつかの写真を Facebook アカウントにアップロードし始めます。

ただし、その期間中に別のユーザーが来て、Facebook ボタンをもう一度押すことができます。前のリクエストがまだ処理されていることを期待しています。ただし、最初の処理 (つまり、最初のユーザーの写真のアップロード) がまだ完了していない間は、2 番目のユーザーをログインさせることができません。

現在のバージョンで何が起こっているかというと、2 番目のユーザーが私の Facebook ボタンを押すと、Facebook API は前のユーザーを参照していると想定します (まだバックグラウンドで実行されているため)。ただし、古いユーザーがまだバックグラウンドで実行されている間に、この新しいユーザーで別のセクションを開始したいと考えています。どうすればそれを達成できますか?

これが私の簡単なコードです(ユーザーが画面上のFacebookボタンを押すと、次のメソッドが呼び出されます):

 private void uploadPictures(View target) {

    mFacebook = new Facebook(getString(R.string.facebookappid));
    mAsyncRunner = new AsyncFacebookRunner(mFacebook);
    mFacebook.authorize(this, Settings.FACEBOOK_PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener());
}

PS: 複数の Facebook および AsyncFacebookRunner オブジェクトのインスタンス化も試みましたが、うまくいきませんでした (同じ動作が得られます。つまり、オブジェクトが異なっていても、ログイン画面が 2 回目に表示されないだけです (前のリクエストがまだ処理中の場合))!!!

よろしくお願いします!

4

1 に答える 1

0

新しい 3.0 ベータ SDK を使用すると、これと同様のことができます。こちらから入手して、SwitchUserSample を確認してください。

別のユーザーでシングル サインオン (SSO) を使用することはできません (Web ビュー ダイアログを介してサインインする必要があります) が、別のユーザーに使用できる別のセッション オブジェクトを取得します。

于 2012-11-28T23:41:18.807 に答える