OAuth 2.0 認証を実装する

YouTube Reporting APIYouTube Analytics API は、非公開のユーザーデータへのアクセスを承認するための OAuth 2.0 プロトコルをサポートしています。 OAuth 2.0 の基本概念について、以下で説明します。

  • Google Account or YouTube account へのログインが必要なアプリケーションの機能をユーザーが初めて使用すると、アプリケーションが OAuth 2.0 承認プロセスを開始します。

  • アプリケーションがユーザーを Google の承認サーバーに転送します。このページへのリンクには、アプリケーションがユーザーのアカウントに対してリクエストするアクセス権の scope を指定します。scope は、アプリケーションが認証済みユーザーとして動作しているときに取得、挿入、更新、削除できるリソースを指定します。

  • アプリケーションがこれらのリソースにアクセスすることをユーザーが同意した場合、Google はアプリケーションにトークンを返します。アプリケーションの種類によって、トークンの検証または別の種類のトークンへの交換が行われます。

    たとえばサーバーサイド ウェブ アプリケーションは、アクセス トークンと更新トークンについて返されたトークンを交換します。アプリケーションはアクセス トークンを使用してユーザーの代わりにリクエストを承認し、元のアクセス トークンの期限が切れると更新トークンを使用して新しいトークンを取得します。

重要: OAuth 2.0 認証を使用するには、Google API Console で認証情報を取得する必要があります。

OAuth 2.0 フロー

Google API は、いくつかの OAuth 2.0 ユースケースをサポートしています。

  • サーバーサイド ウェブアプリのフローは、永続的な情報を安全に保存できるウェブ アプリケーションをサポートします。
  • JavaScript ウェブアプリのフローでは、ブラウザで実行される JavaScript アプリケーションがサポートされています。
  • モバイルアプリとデスクトップ アプリのフローでは、スマートフォンやパソコンなどのデバイスにインストールされているアプリがサポートされます。
  • テレビや入力制限のあるデバイス向けの OAuth 2.0 フローは、入力機能が制限されたゲーム機やビデオカメラなどのデバイスに対応しています。 The YouTube Reporting and YouTube Analytics APIs do not currently support the OAuth 2.0 flow for devices.
  • サービス アカウント フローの OAuth 2.0 フローは、ユーザー情報にアクセスしないサーバー間のやり取りをサポートします。 ただし、YouTube Reporting APIYouTube Analytics API はこのフローをサポートしていません。 Since there is no way to link a Service Account to a YouTube account, attempts to authorize requests with this flow will generate an error.

アクセス スコープを特定する

スコープを使用すると、アプリケーションが必要なリソースへのアクセス権のみをリクエストできます。また、ユーザーはアプリケーションに付与するアクセス権の量を制御できます。したがって、リクエストするスコープの数とユーザーの同意を得る可能性の間に逆相関関係がある場合があります。

OAuth 2.0 認証の実装を開始する前に、アプリがアクセス権限を必要とするスコープを特定することをおすすめします。

YouTube Analytics API では、次のスコープを使用します。

スコープ
https://www.googleapis.com/auth/youtube YouTubeアカウントを管理する
https://www.googleapis.com/auth/youtube.readonly YouTubeアカウントを表示する
https://www.googleapis.com/auth/youtubepartner YouTubeでアセットと関連コンテンツを表示および管理する
https://www.googleapis.com/auth/yt-analytics-monetary.readonly YouTubeコンテンツの金銭的および非金銭的なYouTubeAnalyticsレポートを表示する
https://www.googleapis.com/auth/yt-analytics.readonly YouTubeコンテンツのYouTubeAnalyticsレポートを表示する

YouTube Reporting API では、次のスコープを使用します。

スコープ
https://www.googleapis.com/auth/yt-analytics-monetary.readonly YouTubeコンテンツの金銭的および非金銭的なYouTubeAnalyticsレポートを表示する
https://www.googleapis.com/auth/yt-analytics.readonly YouTubeコンテンツのYouTubeAnalyticsレポートを表示する

OAuth 2.0 API スコープのドキュメントには、Google API へのアクセスに使用できるスコープの一覧が記載されています。