2011-07-11 53 views
6

我的任務是爲Gmail編寫IMAP電子郵件客戶端。到目前爲止,我知道客戶端應該通過OAuth進行身份驗證(Google還有一個java library for IMAP auth)。但我想從任何密碼輸入設置用戶免費。Android AccountManager authToken和OAuth

Android提供了一種很酷的「原生」方式,通過AccountManager爲Google帳戶服務獲取authToken。但我不知道如何使用authToken,它是什麼?僅用於GAE認證嗎?

有沒有辦法讓oauthToken和oauthTokenSecret沒有瀏覽器(通過AccountManager)?

+0

查看此[Google IO 2011的討論](http://www.google.com/events/io/2011/sessions/best-practices-for-accessing-google-apis-on-android.html) 。使用AccountManager描述的新型Android設備有相當不錯的用戶體驗。 –

+0

謝謝!但我已經瀏覽過這個庫,發現Google API中沒有gmail交互。可悲的是,我必須使用IMAP。或者我錯過了什麼? –

+0

我不確定,但我確定可以通過OAuth訪問GMail。我使用的Chrome擴展程序可以這樣做。 –

回答

4

當您撥打AccountManager.getAutToken()時,您是否嘗試過使用「oauth2:https://mail.google.com/」作爲「auth令牌類型」(authTokenType參數)?

根據talk you mentioned中46:50的說法,它應該起作用。

順便說一下,this page描述瞭如何爲Google任務獲取OAuth2令牌,它具有a link to a code sample。這也使得它聽起來像只是提供正確的authTokenType參數的問題。

+0

它應該工作,它的工作原理!但僅限於ClientLogin庫。對? Android客戶端應用程序應該獲取OAuth令牌的原因有很多,而不是AccountManager提供的那些原因。而WebView似乎是唯一的方法......感謝您的回答! –

+0

如果您使用示例中提供的authTokenType,則AccountManager提供的令牌應該是OAuth令牌。我必須承認我還沒有嘗試過,但[最後一個代碼示例](http://code.google.com/p/google-api-java-client/source/browse/tasks-android-sample /src/main/java/com/google/api/services/samples/tasks/android/TasksSample.java?repo=samples)對此似乎是明確的(AccountManager返回的標記與'oauth2.draft10.GoogleAccessProtectedResource一起使用')。 – unBrice

+0

哇!感謝您的評論 - 我會在本週末嘗試從AccountManager測試令牌。 –

相關問題