Аутентификация вызовов API

В этом примере мы показываем, как сервисные аккаунты можно использовать для вызова API платформ AdSense для создания дочерних аккаунтов и управления ими.

Шаг 1. Создайте новый проект Google Cloud (или используйте существующий).

Если у вас есть существующий проект Google Cloud, смело используйте его. В противном случае следуйте приведенному ниже руководству по настройке нового проекта:

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

Шаг 2. Создайте учетную запись службы.

Использование сервисных учетных записей — лучший способ создания дополнительных учетных записей. Выполните следующие действия, чтобы создать учетную запись службы:

  • Посетите страницу сервисных аккаунтов в Google Cloud.
  • Вы можете использовать существующую учетную запись службы или создать новую:
    • Нажмите на «+ Создать учетную запись сервиса»
    • Заполните форму «Реквизиты аккаунта сервиса»
    • Шаги 2 и 3 на странице (предоставление доступа к проектам и пользователям) не являются обязательными.

Узнайте больше о создании сервисных учетных записей и управлении ими .

После создания учетной записи службы вам необходимо отправить ее в Google, чтобы добавить ее в свою учетную запись AdSense. Это очень важно, поскольку учетной записи службы должен быть разрешен доступ к вашей учетной записи AdSense. Пожалуйста, сообщите об этом через своего менеджера по работе с клиентами.

Шаг 3. Включите API платформы AdSense для своего проекта Google Cloud.

API платформы AdSense недоступен для обнаружения. Это значит, что вам нужно перейти по следующей ссылке, чтобы включить его для своего проекта:

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

Шаг 4. Создайте сервисный ключ

Чтобы сгенерировать токены доступа для использования в вызовах API, вам необходимо создать служебный ключ. Выполните следующие действия:

  • Посетите страницу сервисных аккаунтов в Google Cloud.
  • В столбце действий для учетной записи службы, которую вы хотите использовать для создания дополнительных учетных записей, нажмите затем нажмите «Управление ключами»
  • Нажмите «Добавить ключ», затем выберите «Создать новый ключ».
  • Оставьте JSON выбранным в качестве типа ключа и нажмите «Создать».
  • JSON-файл будет создан и загружен на ваш компьютер. Сохраните это, так как оно понадобится для аутентификации вызовов API.

Узнайте больше о создании ключей сервисных учетных записей и управлении ими .

Шаг 5. Используйте библиотеки OAuth Google для создания токена доступа.

Google предоставляет библиотеки для создания токенов доступа, которые можно использовать для вызовов API. Узнайте, как создать учетные данные для учетных записей служб, здесь:

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

Область применения API платформ AdSense следующая: 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. Поскольку клиентские библиотеки пока не поддерживаются API платформы AdSense, вместо этого необходимо выполнять прямые HTTP-запросы. Токен доступа должен быть включен в HTTP-запрос в качестве заголовка. Заголовок должен выглядеть так:

Authorization: OAuth <credentials>

Примеры включены на страницы API.