2012-03-28 28 views
10

Sau khi đọc tất cả các loại bài đăng Stackoverflow và tài liệu khác nhau bao gồm một số trên trang web http://code.google.com/p/google-api-java-client/ Tôi cảm thấy hoàn toàn bối rối. Vì vậy, ai đó có thể giải thích cho tôi cách tốt nhất để đạt được những điều sau đây:Android: Google SSO - OAuth hoặc Trình quản lý tài khoản? Hoặc cả hai?

  1. Cho phép người dùng phê duyệt ứng dụng của tôi. Tôi không thực sự quan tâm nếu điều này được thực hiện bằng cách truy cập tài khoản Google đã đăng ký của họ trong tài khoản/cài đặt và phê duyệt ứng dụng (cách ưa thích) hoặc bằng cách gọi trang xác thực của Google OAuth
  2. Nhận mã thông báo xác thực có thể được sử dụng để liên lạc với Google Reader

Một điểm nhầm lẫn khác đối với tôi - Tôi có thể chấp thuận ứng dụng của mình bằng Trình quản lý tài khoản và nhận mã thông báo từ nó nhưng nó sẽ không hoạt động với Google Reader. Vậy làm cách nào để cân bằng thông tin Tài khoản từ Trình quản lý Tài khoản và OAuth? Tôi vẫn cần thực hiện bất kỳ điều gì với OAuth sau khi tôi được người dùng chấp thuận trong cài đặt Tài khoản quản lý?

Mã ví dụ sẽ được tốt đẹp nhưng tôi nhìn hơn cho một số lời giải thích rõ ràng về cách tất cả các mảnh được liên hệ với nhau

+0

Ý bạn là gì khi "phê duyệt" ứng dụng của bạn? Bạn có tìm cách sử dụng danh tính của họ trong ứng dụng của bạn (OpenID) hoặc để ứng dụng của bạn truy cập dữ liệu của người dùng bằng Google (OAuth) không? – Anirudh

+0

Câu hỏi công bằng. Trong trường hợp cụ thể này, tôi muốn có thể đăng nhập người dùng vào tài khoản Google Reader của họ bằng tài khoản Google đã đăng ký trên điện thoại của họ. Ngoài ra (nếu điều đó là không thể) tôi sẽ không nhớ (nhưng không thích) chuyển hướng người dùng ban đầu đến trang phê duyệt ứng dụng Google OAuth. – Bostone

+0

Việc truy xuất thông tin thực tế từ tài khoản Google Reader được thực hiện bởi máy chủ từ xa, ứng dụng chỉ cần chuyển mã xác thực phù hợp – Bostone

Trả lời

6

Trình quản lý tài khoản cho phép bạn nhận mã thông báo xác thực cho các dịch vụ khác nhau. Có các triển khai cụ thể khác nhau dưới mui xe: ClientLogin, OAuth, v.v. Để làm cho nó hoạt động với, nói rằng, Google Reader, bạn cần phải vượt qua loại mã thông báo thích hợp. Đối với ClientLogin, đó là chuỗi ngắn như "ah" (App Engine) và "reader" (Google Reader). Đối với OAuth, chúng là phạm vi, theo quy định của từng dịch vụ. Vì vậy, bạn đang đi qua thông số authTokenType là gì?

Nhận mã thông báo không đồng bộ, vì nó có thể liên quan đến truy cập mạng. Nếu có một mã thông báo được lưu trong bộ nhớ cache, nó sẽ được trả về ngay lập tức, nếu hợp lệ. Luồng không phức tạp, hãy xem liên kết ở trên để có hình ảnh đẹp. Khi bạn nhận được mã thông báo, bạn đặt nó vào tiêu đề thích hợp và sử dụng API theo thông số.

+0

Như tôi đã nói tôi muốn ký người dùng bằng tài khoản Google hiện có của họ. Có bất kỳ tài liệu nào về các "chuỗi ngắn" này phác thảo những gì được hỗ trợ không? – Bostone

+0

Thuật ngữ chính xác thực sự là 'tên dịch vụ'. Đây không phải là danh sách hoàn chỉnh, nhưng dưới đây là danh sách đầy đủ nhất: http://code.google.com/apis/gdata/faq.html#clientlogin. Để biết thông tin chung về xác thực dịch vụ của Google, bạn có thể bắt đầu tại đây: https://developers.google.com/accounts/. AccountManger của Android chỉ là giao diện người dùng. –

+0

Cảm ơn Nikolay.Tôi chấp nhận câu trả lời của bạn vì tôi khá chắc chắn rằng tôi có thể tìm ra phần còn lại tại thời điểm này – Bostone

4

Dưới đây là một lớp đào tạo Android trên lý Tài khoản có thể giúp:

http://developer.android.com/training/id-auth/authenticate.html

Ngoài ra, việc sử dụng Trình quản lý tài khoản với Google Reader hiện là cách ưu tiên duy nhất để thực hiện việc này. Hướng người dùng của bạn đến trang đăng nhập bằng WebView không an toàn và sử dụng trình duyệt không được API Google hỗ trợ theo như tôi biết (Tôi cũng không chắc liệu Reader có sử dụng OAuth2 hay không).

+0

Liên kết hữu ích, cảm ơn bạn – Bostone

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