android - 如何通过 Activity 生命周期保持 Twitter OAuth session 状态

标签 android android-activity twitter-oauth android-lifecycle

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

据我了解,由于我的 Activity 在用户退出浏览器时离开焦点,因此无法保证一旦我返回 onNewIntent() 我的 session 状态将可用,这意味着我可能不再拥有用于制作 AccessToken 的 RequestToken。在一个理想的世界中,我只会将 RequestToken 保存到 SharedPreferences 并在以后需要时将其拉出。然而,在研究它之后,这样做将是非常重要的,因为我真的没有办法解构/重建 RequestToken 对象(AFAIK,如果您不知道,请纠正我,因为这会更可取)。

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

谢谢, == 马特

最佳答案

原来我不需要保留 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。

关于android - 如何通过 Activity 生命周期保持 Twitter OAuth session 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11277736/

相关文章:

ios - 为什么 Xamarin.Auth 使用 OAuth1Authenticator 和 Twitter 引发身份验证错误

java - Twitter4J 仅向我进行身份验证

android - AutoCompleteTextView 不显示字典建议

java - 为另一个字符串的子字符串创建一个新的字符串是多余的吗?

Android appcompact 不显示上下文操作栏中的文本选择复制操作

android - 处理选项卡、操作栏、 Activity 和 fragment

android - 为什么有时当我按下后退按钮时, Activity 比应有的多?

Twitter oauth刷新 token

android - 如何更改应用程序中使用的默认键盘的背景颜色?

java - Webview 无法在 fragment 中工作