2

OAuth を使用して Twitter で承認し、ツイートを送信するアクティビティを作成しています (編集: Twitter4j を使用しています)。これを行うには、まず Twitter から RequestToken を要求する必要があります。次に、ユーザーがブラウザーにアクセスしてアプリを承認すると、intent.getData() に承認文字列が含まれた onNewIntent() に返されます。RequestToken と文字列を使用して、有効な AccessToken を形成します。

私が理解しているように、ユーザーがブラウザーにキックアウトしている間、アクティビティはフォーカスを離れているため、onNewIntent() に戻ったときにセッション状態が利用可能になるという保証はありません。つまり、RequestToken がなくなる可能性があります。 AccessToken を作成します。理想的な世界では、RequestToken を SharedPreferences に保存し、後で必要になったときにプルします。ただし、調べてみると、 RequestToken オブジェクトを分解/再構築する方法が本当にないため、これを行うのは非常に簡単ではありません(私の知る限り、そうでない場合は修正してください。これははるかに好ましいためです)。

だから私は onSaveInstanceState() と onRestoreInstanceState() の実装を検討していますが、私が読んだドキュメントを把握していません。この場合、onNewIntent() に到達したときに、RequestToken オブジェクト (およびできれば状態の残りの部分) を使用できるようにするにはどうすればよいでしょうか?

ありがとう、==マット

4

1 に答える 1

1

RequestToken がなくても AccessToken を構築できるため、RequestToken を永続化する必要はありません。AccessToken は、A) RequestToken + oauth_verifier、または B) access_token + access_token_secret 文字列で構築できます。

RequestToken を使用して oauth_verifier を取得し、それを使用して AccessToken を作成し、AccessToken から access_token および access_token 文字列を取得して保存します。後で、保存された access_token および access_token_secret 文字列を使用して AccessToken を再構築できます。

于 2012-07-02T01:13:49.907 に答える