2012-06-16 51 views
2

是否可以使用android AccountManager獲取用於Google API的OAuth2令牌?我唯一知道的其他方法是使用webView並讓用戶登錄以獲取OAuth2標記,但對於許多人想要做的事情似乎需要很多工作,所以如果我只能獲得它使用AccountManager會好得多。有沒有這樣的功能?使用android AccountManager獲取OAuth2令牌?

回答

1

AccountManager根本不用於生成令牌 - 它僅用於存儲與Account相關的憑證。這些類不是特定於Google服務器帳戶的 - 您可以將它們用於任何類型的帳戶。例如,我使用它們來存儲用於Facebook,Twitter等的OAuth2令牌。

您需要使用Google API生成OAuth2令牌,然後使用AccountManager將其存儲在Account中。您需要使用Google API,因爲部分OAuth2令牌生成發生在服務器本身上 - Google將存儲它發出的令牌記錄以及它們相關的服務器帳戶。如果您沒有撥打Google API來生成令牌,Google就不會知道如何將令牌與Google服務器帳戶相匹配。

您使用WebView獲取OAuth2令牌的方法是正確的方法。

一旦您爲Account存儲了OAuth2令牌,只要您想用它來查詢,就可以從AccountManager中檢索它。所以,您只需要一次生成OAuth2令牌(除非它過期),然後您一直反覆使用它。

+0

Downvoter - 我很想知道你對downvote的理由,特別是考慮到我知道這是真實的,因爲我在很多自己的Android應用中使用它。照顧開導我? – wattostudios

+0

我沒有讓你失望,但是在'manager.getAuthToken(賬號,「管理你的任務」,...)'方面,應該沒有先調用Google API。每個API都有一個不同的字符串,可以用於第二個參數。 – falcojr

相關問題