最近、Android特にAnalytics、AdSense、およびTasks APIでGoogle APIを使用して多くの作業を行っています。
Googleが提供するいくつかのサンプルを見ましたが、このステートメントを使用してGoogleAccountCredential
オブジェクトを取得しています。
credential = GoogleAccountCredential.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS));
ただし、次のようなドキュメントを参照する場合:
http://developer.Android.com/google/auth/http-auth.html
http://developer.Android.com/google/play-services/auth.html
どちらも、トークンの取得に使用される以下のメソッドに言及しています。token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope);
どのシナリオでどのシナリオを使用するのか、またその理由はわかりません。方法番号を使用しています。 1正常に、設定でトークンを永続化する必要なし(これはGoogleAccountCredentialによって自動的に行われると思います)
なぜ誰かが2番目ではなく最初の方法を使用するのか教えてもらえますか?
最初の方法で認証トークンにアクセスするにはどうすればよいですか?
Java用Google APIクライアントライブラリ は、名前がGoogle APIにアクセスするためのライブラリを示唆しており、Java(一般的に)および= Android while Google Play Services および GoogleAuthUtil はAndroidでのみ使用可能です。
プロジェクトの wikiページ を見ると、ウィキは AccountManager がGoogleアカウントの処理に使用されることを示唆しているため、Google APIクライアントライブラリとGoogleAuthUtilの関係を理解することは困難です。 GoogleAuthUtilについてはまったく言及していません。
ただし、コードとその問題トラッカーを少し掘り下げると、 tasks sample 実際にリンクされていることがわかります ses GoogleAuthUtil バージョン1.12. = GoogleAuthUtilのサポートが 追加 の場合のGoogle APIクライアントライブラリの。
Wikiは、GoogleAuthUtilが利用可能になる前にOAuth2認証を行う方法であり、Wikiの一部がまだ更新されていないため、おそらくGoogleAuthUtilではなくAccountManagerに言及しています。
AccountManagerとGoogleAuthUtilの違いの詳細については、以下を参照してください。 一言で言えば、OAuth2リクエストgetAuthTokenとgetTokenを使用することとの違いは何ですか
簡単に言えば、Google APIクライアントライブラリは、Googleのサービスと対話するためのクロスプラットフォームライブラリであり、AndroidバージョンはGoogleAuthUtilを使用して実装されます。
なぜ誰かが2番目ではなく最初の方法を使用するのか教えてもらえますか?
Google APIクライアントライブラリを使用する理由
GoogleAuthUtilを使用する理由
どのシナリオでどのシナリオを使用するのか、またその理由はわかりません。方法番号を使用しています。 1正常に...
Google APIクライアントライブラリを使用していて、それが正常に機能している場合、引き続き使用しない理由はわかりません。
ただし、Googleのサービスと対話する必要があるAndroid(のみ)アプリケーションを作成する場合、GoogleAuthUtilを直接使用する可能性があります。
...プリファレンスでトークンを保持する必要はありません(これはGoogleAccountCredentialによって自動的に行われると思います)
はい、これはGoogleAuthUtilによって自動的に処理され、GoogleAuthCredentialはGoogleAccountCredentialによって使用されます。
最初の方法で認証トークンにアクセスするにはどうすればよいですか?
GoogleAccountCredential
オブジェクトでメソッド getToken() を呼び出すことができるはずです。
Google Play Services client library
はAndroidデバイス専用に書かれており、個々のGoogleサービスと一貫したユーザーインターフェイスを提供して、ユーザーの資格情報でこれらのサービスにアクセスするための承認を取得します。
Google APIs Client Library for Java
は、すべての種類のアプリケーション(Web、インストール済み、またはAndroidアプリケーション)からGoogleサービスにアクセスするための汎用ライブラリです。
Androidに戻って、使用するGoogle APIがGoogle Play services library
に含まれていない場合、適切なREST APIを使用して接続できますが、OAuth 2.0トークンを取得する必要があります。
トークンを取得するには、次のいずれかを実行できます-
OAuthのGoogle APIクライアントライブラリのJava 2.0ライブラリを直接使用します(Androidには推奨されません)
または、GoogleAuthUtil
とAccountPickerを使用して、Google Play開発者サービスライブラリの認証部分を活用します。 REST APIのGoogleによる認証の読み取り。 (GoogleAuthUtil.getToken()
トークンの有効期限をキャッシュおよび管理し、それ自体を更新します。ただし、ネットワークエラー/サーバー負荷の場合は、サーバーが要求であふれないように、トークンを再試行する前に指数バックオフアルゴリズムを使用する必要があります。)
または、Java用Google APIクライアントライブラリに付属のgoogle-api-client-Android-1.19.0.jar
にパッケージ化されているGoogleAccountCredential
を使用します。パッケージには、Google Play servicesクライアントライブラリおよび GoogleAccountCredential is just a wrapper
に基づくGoogleAuthUtil
およびAccountPicker
に基づくユーティリティが含まれています。これにより、トークン管理をGoogleAccountCredential
に委任しながら、同じ一貫した認証フローと、Google Play開発者サービスクライアントライブラリに付属する標準のアカウントピッカーダイアログを使用できます。例については、 this を参照してください。
メソッド番号1(com.google.api.client.googleapis.extensions.Android.gms.auth。*)は、Googleのより一般的なクロスプラットフォームアカウント管理フローの一部であり、メソッド番号2(com.google.Android.gms。 auth.GoogleAuthUtil)はAndroid固有です。さまざまなAndroid Google API、メソッド2、ラップしてメソッド1を簡素化します。たとえば、 Google+のドキュメントの2番目の段落 は、「Google+サインインボタンはユーザーを認証し、OAuth 2.0フローを管理します。これにより、Google APIとの統合が簡単になります。
可能な限り、Android特定のメソッド、token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope),
を使用します。