2011-07-11 33 views
6

Nhiệm vụ của tôi là viết ứng dụng email IMAP cho Gmail. Cho đến nay tôi biết khách hàng nên xác thực thông qua OAuth (cũng có một số java library for IMAP auth của Google). Nhưng tôi muốn đặt người dùng miễn phí từ bất kỳ thao tác nhập mật khẩu nào.Tài khoản AndroidManager authToken và OAuth

Android cung cấp cách 'bản xứ' thú vị để giành được authToken cho dịch vụ tài khoản google thông qua Trình quản lý tài khoản. Nhưng tôi tự hỏi làm thế nào để sử dụng authToken và nó là gì? Nó chỉ dành cho xác thực GAE?

Có cách nào để nhận oauthToken và oauthTokenSecret mà không cần trình duyệt (qua AccountManager) không?

+0

Xem [talk from Google IO 2011] này (http://www.google.com/events/io/2011/sessions/best-practices-for-accessing-google-apis-on-android.html) . Có một trải nghiệm người dùng khá tốt cho các thiết bị Android mới hơn bằng cách sử dụng Trình quản lý tài khoản được mô tả. –

+0

Cảm ơn! Nhưng tôi đã xem qua thư viện này và thấy không có tương tác gmail trong Google API. Buồn nhưng đúng, tôi phải sử dụng IMAP. Hay tôi nhớ điều gì đó? –

+0

Tôi không biết chắc chắn, nhưng tôi chắc chắn GMail có thể được truy cập thông qua OAuth. Tôi đang sử dụng các tiện ích của Chrome có thể làm như vậy. –

Trả lời

4

Bạn đã thử sử dụng "oauth2:https://mail.google.com/" làm "loại mã thông báo xác thực" (authTokenType thông số) khi gọi AccountManager.getAutToken()?

Theo những gì được nói ở 46:50 trong số talk you mentioned, nó sẽ hoạt động.

Nhân tiện, this page mô tả cách nhận mã thông báo OAuth2 cho Google Task và mã này có a link to a code sample. Nó cũng làm cho nó có vẻ như nó chỉ là vấn đề cung cấp thông số authTokenType đúng.

+0

Nó sẽ hoạt động và nó hoạt động! Nhưng chỉ cho thư viện ClientLogin. Đúng? Khi có nhiều lý do khiến ứng dụng khách của Android sẽ nhận được mã thông báo OAuth, chứ không phải mã thông báo mà Trình quản lý tài khoản cung cấp. Và WebView có vẻ là cách duy nhất ... Cảm ơn câu trả lời của bạn! –

+0

Nếu bạn sử dụng authTokenType được cung cấp trong các ví dụ, mã thông báo được cung cấp bởi AccountManager phải là mã thông báo OAuth. Tôi phải thừa nhận rằng tôi chưa thử nó, nhưng [mẫu mã cuối cùng] (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) có vẻ rõ ràng về điều này (mã thông báo được trả về bởi Trình quản lý tài khoản được sử dụng với 'oauth2.draft10.GoogleAccessProtectedResource '). – unBrice

+0

WoW! Cảm ơn bạn đã nhận xét - Tôi sẽ thử và kiểm tra mã thông báo từ AccountManager cuối tuần này. –

Các vấn đề liên quan