2012-03-28 4 views
10

http://code.google.com/p/google-api-java-client/サイトにあるStackoverflowの投稿やさまざまなドキュメントを読んだ後、私は全く混乱しています。だから、誰かが私に以下を達成する最善の方法を説明することができます:Android:Google SSO - OAuthまたはAccountManager?または両方?

  1. 私のアプリを承認するユーザーを許可してください。これは、アカウント/設定で登録済みのGoogleアカウントにアクセスしてアプリを承認するか(推奨)、Google OAuth認証ページを呼び出すことで行われますか?
  2. Googleとの通信に使用できる認証トークンを取得するリーダー

アカウントマネージャを使用して私のアプリを承認し、認証トークンを取得できましたが、Googleリーダーでは機能しません。 AccountManagerとOAuthのアカウント情報のバランスをとるにはどうすればいいですか? AccountManagerの設定でユーザーの承認を得た後でもOAuthで何かをする必要がありますか?

のコード例ではいいだろうが、私はこれらすべてのピースが互いに

+0

あなたのアプリを「承認する」とはどういう意味ですか?あなたのアプリ(OpenID)で自分のアイデンティティを使用しようとしているのですか、またはあなたのアプリがあなたのユーザーのデータにGoogle(OAuth)でアクセスできるようにしますか? – Anirudh

+0

公正な質問。この特定のケースでは、自分の電話機の登録済みGoogleアカウントを使用してGoogleリーダーアカウントにログインできるようにしたいと考えています。代わりに(それが不可能な場合)、ユーザーをGoogle OAuthアプリの承認ページにリダイレクトしても構いませんが、そうしないことをおすすめします。 – Bostone

+0

Google Readerアカウントからの情報の実際の取得は、リモートサーバーによって行われます。アプリは適切な認証トークンを渡す必要があります。 – Bostone

答えて

6

アカウントマネージャでは、さまざまなサービスの認証トークンを取得できます。クライアントのログイン、OAuthなどのさまざまな具体的な実装があります.Googleリーダーと連携するには、適切なトークンタイプを渡す必要があります。 ClientLoginの場合は、「ah」(App Engine)や「リーダー」(Googleリーダー)のような短い文字列です。 OAuthでは、各サービスで定義されているスコープです。では、authTokenTypeパラメータとして何を渡していますか?

トークンの取得は、ネットワークアクセスを伴う可能性があるため、非同期です。トークンがキャッシュされている場合は、有効な場合はすぐに返されます。流れはそれほど複雑ではありません。上のリンクを見てください。トークンを取得したら、それを適切なヘッダーに入れ、仕様に従ってAPIを使用します。

+0

私が言ったように、既存のGoogleアカウントでユーザーに署名することをお勧めします。サポートされているものの概要を示すこれらの「短い文字列」に関するドキュメントはありますか? – Bostone

+0

正しい用語は実際には「サービス名」です。これは完全なリストではありませんが、ここで最も大切なのはhttp://code.google.com/apis/gdata/faq.html#clientloginです。 Googleサービスの認証に関する一般的な情報については、https://developers.google.com/accounts/からこちらをご覧ください。 AndroidのAccountMangerはそれらのフロントエンドにすぎません。 –

+0

ありがとうNikolay。私はあなたの答えを受け入れています。私はこの時点で残りの部分を見つけ出すことができると確信しています。 – Bostone

4

どのように関連しているかについて、いくつかの明確な説明のためのより多くのを見てここに役立つかもしれないのAccountManagerのAndroidトレーニングクラスです:

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

は、

また、これを行うための唯一の方法として、現在Google ReaderでAccountManagerを使用する方法があります。ユーザーをWebViewでログインページに誘導することはあまり安全ではないし、ブラウザを使用することはGoogle APIが私の知る限りではサポートされていません(ReaderがOAuth2を使用しているかどうかはわかりません)。

+0

便利なリンク – Bostone

関連する問題