5

Symfony 2アプリケーションからGoogleのサービス(Google Analyticsなど)にアクセスする必要があったため、Google apiクライアント(バージョン2)を使用する必要がありました。 Googleアナリティクスの情報にアクセスする前に、Google APIコンソールでAPIキー、クライアントID、サービスアカウントのいずれかを作成する必要がありました。api keyとclient idとservice accountの違いは何ですか?

最後に、サービスアカウントを作成し、ファイルをダウンロードしました。このファイルは、Googleアナリティクスアカウントとそれぞれの収集された情報へのアクセスを許可するためにGoogle APIクライアントによって使用されます。

私の質問は以下のとおりです。

  1. APIキー、クライアントIDとサービスアカウントの違いは何ですか?

  2. もう一方を作成/使用する理由とその理由は何ですか?

私はこの質問で何を求めているのかを説明する徹底的な記事は見ていません。

答えて

4

APIキーは、個人データにアクセスできないAPIを認証します。

クライアントIDは、お客様のGoogleアカウントで認証されます。

サービスアカウントは、自分のアカウント(または実際の人物アカウント)のログインデータを使用したくない場合にアプリケーションを認証します。

サービスアカウントは、そのサービスアカウントでアクセスするすべてのGoogleサービスに追加する必要があります。

0

このスレッドは古いですが、依然として情報を追加しています。将来他の人を助けるかもしれない。

Googleは、認証とトラフィックやクォータの管理のために、あなたのプロジェクト(Androidパッケージを使用)と結びつけるために固有の識別子が必要です。

OauthとAPIキーは、このような一意の識別子です。

OAuth 2.0クライアントID:アプリケーションでOAuth 2.0プロトコルを使用している場合は、OAuthクライアントIDを使用します。 OAuthはアクセストークンの作成に使用されます。これはユニークな識別子です。ただし、ユーザーは同意する必要があります。 https://developers.google.com/identity/protocols/OAuth2

APIキー: APIキーは、コンソールを使用して生成する一意の識別子です。利点は、ユーザーがユーザーの行動や同意を必要としないことです。ただし、OAuthとは異なり、APIキーを承認に使用することはできません。必要なデータが公開されていて、Googleマップなどのユーザー認証が必要ない場合は、APIキーを使用します。

サービスアカウント:予測APIやGoogle Cloud StorageなどのGoogle APIは、ユーザー情報にアクセスすることなくアプリケーションに代わって行動することができます。このような状況では、アプリケーションは独自のIDをAPIに証明する必要がありますが、ユーザーの同意は必要ありません。同様に、エンタープライズシナリオでは、アプリケーションは一部のリソースに対して委任されたアクセスを要求できます。 これらのタイプのサーバー間の対話には、サービスアカウントが必要です。 https://developers.google.com/identity/protocols/OAuth2#serviceaccount

関連する問題