2012-06-30 147 views
2

我正在製作一個活動,使用OAuth使用Twitter授權併發送推文(編輯:我正在使用Twitter4j)。爲此,我必須首先從Twitter請求RequestToken,然後用戶前往瀏覽器授權應用程序,然後使用intent.getData()中的授權字符串將其發送回onNewIntent()。我使用RequestToken和字符串形成有效的AccessToken。如何通過活動生命週期持續存在Twitter OAuth會話狀態

據我瞭解,因爲我的活動離開焦點,而用戶踢出的瀏覽器,但也不能保證我的會話狀態將是可用的,一旦我回到onNewIntent(),這意味着我可能不再有一個RequestToken用於製作AccessToken。在理想的世界中,我只需將RequestToken保存到SharedPreferences,稍後在需要時將其拉出。然而,在研究之後,這樣做會非常不平凡,因爲我真的沒有解構/重建RequestToken對象的方法(AFAIK,如果您知道其他情況,請糾正我,因爲這樣會更加優先)。

所以我正在研究實現onSaveInstanceState()和onRestoreInstanceState(),但我只是沒有把握我讀過的文檔。我怎麼能保證,在這種情況下,當我到達onNewIntent()時,我的RequestToken對象(最好是我的狀態的其餘部分)在我身邊?

感謝, ==馬特

回答

1

原來我並不需要堅持的RequestToken,因爲我可以沒有它構建的accessToken。 AccessToken可以用A)RequestToken + oauth_verifier或B)access_token + access_token_secret字符串構建。

所以我用RequestToken得到oauth_verifier,並作出的accessToken與,然後我拉及的access_token字符串的access_token從的accessToken,並存儲這些。後來我可以使用存儲的access_token和access_token_secret字符串重建AccessToken。

+0

等一下,你回答你原來的問題了嗎?看起來你需要在返回驗證器時擁有RequestToken。你給出的答案看起來像是在你拿回驗證器之後要保存什麼的指令,並且你持有RequestToken(不知何故)。 – larham1

相關問題