あなたの質問に対する答えはもう出ていると思います。しかし、このようなことを達成することに関心のある他のユーザーを支援するために、この質問に答えたいと思います。
したがって、Google アカウント アクセス トークンを使用して、独自のサービスに対してアプリ ユーザーを認証および承認するには、次の手順に従う必要があります。
- Google Cloud Console で 2 つのコンポーネントを使用してプロジェクトを作成します (左ペインの [APIs $ Auth > Credentials] オプションをクリックしてコンポーネントを作成します)。最初のコンポーネントは Web コンポーネント (例: Web サービス) で、2 番目のコンポーネントは Android アプリケーションです。
- GoogleAuthUtil.getToken() メソッドを実行し、現在のコンテキスト、メール ID (アカウント マネージャーを使用してクエリ)、スコープを ("audience:server:client_id:") として渡して、Android アプリでアカウント マネージャーにクエリを実行し、アクセス トークンの取得を試みます。
- Google Cloud Console で作成されたプロジェクトで使用できる Web コンポーネントの「クライアント ID」パラメーターはどこにありますか。
- このメソッドは、JSON Web トークンまたは JWT としてエンコードされた ID トークンを返します。
- この ID トークンは、サーバーでユーザーを認証するためにアプリが必要とするすべてのものです。
- ID トークンは次のパラメータで構成されます
iss: 常に accounts.google.com
aud: プロジェクトの Web コンポーネントのクライアント ID
azp: プロジェクトの Android アプリ コンポーネントのクライアント ID
email: トークンを要求しているユーザーを特定する電子メールとその他のフィールド。
Web コンポーネントと Android コンポーネントのクライアント ID が既に保存されている https (必須) を介して、このトークンを Web コンポーネント (Web サービスなど) に渡します。
サーバーで受信した JWT ID トークンをデコードした後、トークンの「aud」パラメーターと保存されている Web コンポーネントのクライアント ID が等しいかどうかを確認し、ユーザーを認証します。
GoogleAuthUtil.getToken() メソッドの実行中に、Android アプリケーションで Id トークンにアクセスするために提供された電子メール ID を指定する JWT ID トークンの電子メール パラメータを読み取ることにより、ユーザー ID を取得できます。
注 : Android の ID トークンは、Google Cloud Console でプロジェクトの下に Android コンポーネントを作成するときに指定された同じ証明書によって署名された同じアプリケーションである場合、GoogleAuthUtil.getToken() を実行することによってのみ取得できます。
詳細については、「https://developers.google.com/accounts/docs/CrossClientAuth」を参照してください。