10

あらゆる種類のStackoverflowの投稿と、http://code.google.com/p/google-api-java-client/サイトの一部を含むさまざまなドキュメントを読んだ後、私は完全に混乱していると感じています。だから誰かが私に次のことを達成するための最良の方法を説明できますか?

  1. ユーザーに私のアプリを承認させます。アカウント/設定で登録済みのGoogleアカウントにアクセスしてアプリを承認する(推奨される方法)か、Google OAuth認証ページを呼び出すことによってこれが行われるかどうかは、私は本当に気にしません。
  2. Googleリーダーとの通信に使用できる認証トークンを取得します

もう1つの混乱点は、AccountManagerを使用してアプリを承認し、そこから認証トークンを取得することはできましたが、Googleリーダーでは機能しません。では、AccountManagerとOAuthからのアカウント情報のバランスをとるにはどうすればよいでしょうか。AccountManager設定でユーザーに承認された後も、OAuthで何かを行う必要がありますか?

コード例はいいのですが、これらすべての部分が互いにどのように関連しているかについての明確な説明をもっと探します

4

2 に答える 2

6

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

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

于 2012-04-10T02:58:29.760 に答える
4

これが、AccountManagerのAndroidトレーニングクラスで役立つ可能性があります。

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

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

于 2012-04-09T22:11:16.760 に答える