1

Facebookオブジェクトを使用する必要がある2つのアクティビティがあります。最初のアクティビティはログインプロセスを実行し、2番目のアクティビティは友達のリストを取得するためにFacebookオブジェクトを必要とします。Applicationを拡張するクラスを使用して、Facebookオブジェクトを最初のアクティビティから2番目のアクティビティに転送しています。

これは正常に機能しますが、最初のアクティビティでログアウトしてログインすると、2番目のアクティビティでFacebookオブジェクトを使用しようとするとこのエラーが発生します

    {"error_code":104,"error_msg":"Requires valid signature","request_args"

再度ログインしたときにFacebookオブジェクトを更新し、ApplicationクラスのFacebookオブジェクトを更新しています。このエラーが発生する理由はありますか?

4

1 に答える 1

3

Facebookオブジェクトをあるアクティビティから別のアクティビティに渡す必要はありません。代わりに、アクセストークンと有効期限を設定に保存して、他のアクティビティで取得します。
これは、ユーザーが後でアプリに戻った場合にも役立ちます。

Facebookの公式例のSessionStoreクラスを使用すると、認証情報の保存/取得が簡単になります。

したがって、最初のアクティビティでは、次のことができます。

Facebook facebook = new Facebook("APP_ID");

if (!SessionStore.restore(facebook, this)) {
    // start the authentication process
}
else {
    // start the other activity
}

そして2番目のアクティビティでは:

Facebook facebook = new Facebook("APP_ID");

if (!SessionStore.restore(facebook, this)) {
    // start the first activity to authenticate the user
}
else {
    // use the facebook object to make graph requests
}
于 2012-06-07T07:25:31.280 に答える