API 呼び出しの認証
この例では、サービス アカウントを使用して AdSense Platforms API を呼び出し、サブアカウントの作成と管理を行う方法を示しています。
ステップ 1: 新しい Google Cloud プロジェクトを作成する(または既存のプロジェクトを使用する)
既存の Google Cloud プロジェクトがある場合は、それを使用できます。それ以外の場合は、以下のガイドに沿って新しいプロジェクトを設定します。
https://cloud.google.com/resource-manager/docs/creating-managing-projects
ステップ 2: サービス アカウントを作成する
サブアカウントを作成するには、サービス アカウントを使用することをおすすめします。サービス アカウントを作成する手順は次のとおりです。
- Google Cloud の [サービス アカウント] ページにアクセスします。
- 既存のサービス アカウントを使用することも、新しいサービス アカウントを作成することもできます。
<ph type="x-smartling-placeholder">
- </ph>
- [+ サービス アカウントを作成] をクリックします。
- [Service account details] に入力します。フォーム
- このページの手順 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 のページに記載されています。