2

我正在制作一个使用 OAuth 向 Twitter 授权并发送推文的活动(编辑:我正在使用 Twitter4j)。为此,我必须首先从 Twitter 请求一个 RequestToken,然后用户到浏览器去授权应用程序,然后我被发送回 onNewIntent(),intent.getData() 中有一个授权字符串。我使用 RequestToken 和字符串来形成一个有效的 AccessToken。

据我了解,由于我的活动在用户退出浏览器时离开焦点,因此无法保证一旦我返回 onNewIntent(),我的会话状态将可用,这意味着我可能不再有 RequestToken哪个来制作 AccessToken。在理想情况下,我只需将 RequestToken 保存到 SharedPreferences 并稍后在需要时将其拉出。然而,在调查之后,这样做非常重要,因为我真的无法解构/重建 RequestToken 对象(AFAIK,如果你知道,请纠正我,因为这会更可取)。

所以我正在考虑实现 onSaveInstanceState() 和 onRestoreInstanceState() 但我只是没有掌握我读过的文档。在这种情况下,当我到达 onNewIntent() 时,我如何保证我的 RequestToken 对象(最好是我的状态的其余部分)在我身边供我使用?

谢谢,== 马特

4

1 回答 1

1

事实证明我不需要保留 RequestToken,因为没有它我可以构建一个 AccessToken。可以使用 A) RequestToken + oauth_verifier 或 B) access_token + access_token_secret 字符串来构建 AccessToken。

所以我使用 RequestToken 来获取 oauth_verifier,并用它制作一个 AccessToken,然后我从 AccessToken 中提取 access_token 和 access_token 字符串,并存储它们。稍后我可以使用存储的 access_token 和 access_token_secret 字符串重建 AccessToken。

于 2012-07-02T01:13:49.907 回答