【问题标题】:How to Persist Twitter OAuth Session State Through Activity Lifecycle如何通过活动生命周期保持 Twitter OAuth 会话状态
【发布时间】:2012-07-02 09:13:49
【问题描述】:

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

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

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

谢谢, == 马特

【问题讨论】:

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


    【解决方案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。

    【讨论】:

    • 等一下,你回答你原来的问题了吗?当您取回验证者时,您似乎需要拥有 RequestToken。您给出的答案似乎是关于在 您取回验证者 并且 您持有 RequestToken(以某种方式)之后保存什么的说明。
    猜你喜欢
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多