API 呼び出しの認証

この例では、サービス アカウントを使用して AdSense Platforms API を呼び出し、サブアカウントを作成および管理する方法を示します。

ステップ 1: 新しい Google Cloud プロジェクトを作成する(または既存のプロジェクトを使用する)

既存の Google Cloud プロジェクトがある場合は、それを自由に使用できます。それ以外の場合は、以下のガイドに従って新しいプロジェクトを設定します。

https://cloud.google.com/resource-manager/docs/creating-managing-projects

ステップ 2: サービス アカウントを作成する

サブアカウントの作成ではサービス アカウントを使用することをおすすめします。次の手順でサービス アカウントを作成します。

  • Google Cloud の [サービス アカウント] ページにアクセスします。
  • 既存のサービス アカウントを使用することも、新しいサービス アカウントを作成することもできます。
    • [+ サービス アカウントを作成] をクリックします。
    • [サービス アカウントの詳細] フォームに入力します
    • このページの手順 2 と 3(プロジェクトとユーザーへのアクセス権の付与)は省略可能です。

サービス アカウントの作成と管理について学習する。

サービス アカウントを作成したら、Google に送信して AdSense アカウントに追加してもらう必要があります。AdSense アカウントへのアクセスをサービス アカウントに許可する必要があるため、これは重要です。アカウント マネージャーを通じてお知らせください。

ステップ 3: Google Cloud プロジェクトで AdSense Platform API を有効にする

AdSense Platform API を検出できません。つまり、次のリンクにアクセスして、この API をプロジェクトで有効にする必要があります。

https://console.developers.google.com/apis/api/adsenseplatform.googleapis.com/overview

ステップ 4: サービスキーを作成する

API 呼び出しで使用するアクセス トークンを生成するには、サービスキーを作成する必要があります。以下の手順に沿って登録してください。

  • Google Cloud の [サービス アカウント] ページにアクセスします。
  • [アクション] 列で、サブアカウントの作成に使用するサービス アカウントの をクリックし、[キーを管理] をクリックします。
  • [鍵を追加] をクリックし、[新しい鍵を作成] を選択します。
  • キーのタイプとして [JSON] を選択したままにして、[作成] をクリックします。
  • JSON ファイルが作成され、パソコンにダウンロードされます。API 呼び出しの認証を行う際に必要になるため、安全な場所に保管してください。

サービス アカウント キーの作成と管理の詳細を確認する。

ステップ 5: Google の OAuth ライブラリを使用してアクセス トークンを生成する

Google には、API 呼び出しに使用できるアクセス トークンの生成に役立つライブラリが用意されています。サービス アカウントの認証情報を生成する方法については、以下をご覧ください。

https://developers.google.com/identity/protocols/oauth2/service-account#authorizingrequests

AdSense Platforms API のスコープは次のとおりです。 https://www.googleapis.com/auth/adsense

Python の例

from google.auth.transport import requests
from google.oauth2 import service_account

CREDENTIAL_SCOPES = ["https://www.googleapis.com/auth/adsense"]
CREDENTIALS_KEY_PATH = 'service.json'

def get_service_account_token():
  credentials = service_account.Credentials.from_service_account_file(
          CREDENTIALS_KEY_PATH, scopes=CREDENTIAL_SCOPES)
  credentials.refresh(requests.Request())
  return credentials.token

これで、API の呼び出しを開始する準備が整いました。クライアント ライブラリは AdSense Platform API でまだサポートされていないため、代わりに直接 HTTP リクエストを行う必要があります。アクセス トークンは、HTTP リクエストのヘッダーとして含める必要があります。ヘッダーは次のようになります。

Authorization: OAuth <credentials>

例は API ページに記載されています。