Google APIの認証方法は三種類あるのですが、説明を読んでもいまいち理解できず、触ってみてようやく理解できたので、まとめておきます。認証情報の作成方法については、検索すればいくらでも出るのでそちらを参照してください。
ポイントは、APIを利用するためのAPI認証と、ユーザーデータを利用するためのユーザー認証は別だということです。ここで作成するのは、APIを利用するための認証情報であり、その認証情報の種類が、APIアクセスの中で行うユーザー認証の方法によって変わる、ということを覚えておいてください。
APIキー
一般的なAPIキーです。APIキーを用いる場合は、ユーザー認証ができないため、一般公開されているデータ(Google Mapなど)にしかアクセスできません。
OAuth 2.0
よくあるやつです。ユーザー認証をOAuth2で行います。一度は必ずGoogleの認証ページにアクセスして対話的に認証を行う必要があるため、全自動化が必要なサービス等には向きません。コンソールアプリの場合は、APIから取得したURLにアクセスすることで、認証を行うことができます。
サービスアカウント
アプリ専用のGoogleアカウントを作成し、そのアカウントでユーザー認証を行います。[アカウント名]@[プロジェクト名+suffix].iam.gserviceaccount.com
のようなメールアドレスが発行され、これをアカウント名として用います。サービスアカウントは、ユーザーアカウントに代理ログインするためのアカウントなので、作成時点ではどこにもログインすることはできません。そのため、APIの利用の前に、ユーザーアカウントとサービスアカウントを紐づける必要があります。この紐づけ作業は、基本的にGoogleの各種サービス(Google Analyticsなど)の管理ページで行います。
サービスアカウントは、キーさえあれば対話的なログイン作業が必要ないため、全自動のサービス等に向いています。
使い分け
APIキーは、ユーザーデータにアクセスする必要がない場合に使います。OAuth 2.0は、不特定多数のユーザーのデータにアクセスする必要がある場合に向いています。ウェブサービス等におけるGoogleアカウントでのログインもこれに当たります。サービスアカウントは、特定のユーザーのデータ(自身のアカウントや、会社の顧客など)にアクセスする場合に向いています。ユーザーアカウントにサービスアカウントを紐づけてもらう手間が発生しますが、そのあとは対話的なログインなしにユーザーデータにアクセスできます。