Как получить доступ к REST API

С помощью Google Pay API for Passes можно добавлять карты постоянных клиентов, подарочные карты, специальные предложения, билеты на мероприятия, посадочные талоны на самолеты и билеты на транспорт и управлять ими непосредственно в приложении Google Pay. Чтобы начать работу с ним, зарегистрируйте свой проект, подключите его к сервису Google Pay API for Passes Merchant Center, а затем настройте веб-сервис для аутентификации по протоколу OAuth 2.0.

1. Зарегистрируйте приложение

Все приложения с доступом к API Google необходимо регистрировать в API Console. После регистрации вы получите набор значений, которые будут храниться только в Google и в вашем приложении (идентификатор клиента, адрес электронной почты и закрытый ключ). Чтобы зарегистрировать приложение, выполните указанные ниже действия.

  1. Подайте заявку на доступ к Google Pay API for Passes. Если вы уже сделали это, перейдите к следующему пункту.
  2. Откройте API Console.
  3. Нажмите кнопку Создать проект или выберите пункт Создать проект в раскрывающемся меню в верхней части страницы. Откроется страница "Создание проекта".
  4. Введите название проекта.
  5. Нажмите Создать. Когда процесс создания будет завершен, в правом верхнем углу появится уведомление. Нажмите на него, чтобы перейти на главную страницу проекта.
  6. Нажмите Перейти к обзору API, а затем ВКЛЮЧИТЬ API и СЕРВИСЫ.
  7. Найдите Google Pay Passes API и нажмите Включить.
  8. В меню слева выберите Учетные данные.
  9. Нажмите кнопку Создать учетные данные, а затем выберите Ключ сервисного аккаунта.
  10. Создайте ключ сервисного аккаунта на странице. При необходимости на той же странице можно создать и сам сервисный аккаунт. Дополнительные роли для такого аккаунта не требуются. Выберите json в качестве типа ключа и нажмите Создать.
  11. Новый сервисный аккаунт будет добавлен в ваш список аккаунтов, а секретный ключ – загружен в локальную файловую систему. Это единственная копия ключа, поэтому файл с ней нужно сохранить в безопасном месте. Ключ понадобится вам позже.
  12. Скопируйте адрес электронной почты, привязанный к сервисному аккаунту с ключом. Его можно найти, нажав Управление сервисными аккаунтами на вкладке "Учетные данные". Данный адрес понадобится вам позже.

Предупреждение. Храните закрытый ключ в безопасном месте и используйте его, соблюдая все меры предосторожности как в тестовой, так и в рабочей среде. Google хранит копии только открытых ключей. Более подробную информацию об управлении закрытыми ключами сервисных аккаунтов можно найти здесь.

2. Добавьте сервисный аккаунт в свой аккаунт Google Pay API for Passes

Аккаунт Google Pay API for Passes уже должен быть создан для вас представителем Google. Сервис Google Pay API for Passes Merchant Center – это сайт, на котором вы можете управлять своим аккаунтом, а также всеми связанными с ним классами и объектами. Чтобы добавить сервисный аккаунт в Google Pay API for Passes Merchant Center, выполните указанные ниже действия.

  1. Войдите в сервис Google Pay API for Passes Merchant Center.
  2. Выберите свой аккаунт из списка. Откроется страница "Информация об аккаунте".
  3. Нажмите Поделиться. Появятся настройки доступа.
  4. В разделе регистрации приложения выше скопируйте адрес электронной почты, привязанный к сервисному аккаунту с ключом (заканчивается на @<your_domain>.iam.gserviceaccount.com), и вставьте его в поле Invite people.
  5. Убедитесь, что в раскрывающемся меню "Разрешения" выбран параметр Редактирование, а затем нажмите Отправить. Теперь ваш сервисный аккаунт связан с аккаунтом Google Pay API for Passes. С этого момента вы сможете отправлять API вызовы REST.

3. Как использовать протокол OAuth 2.0 в межсерверных приложениях

Сервер авторизации Google OAuth 2.0 поддерживает взаимодействие между серверами, например между веб-приложением и Google Cloud Storage. Чтобы получить доступ к API, приложение должно подтвердить свои данные. Это делается без участия пользователя.

Чтобы авторизовать запросы к API, необходимо получить токен доступа. Настоятельно рекомендуем воспользоваться клиентской библиотекой, чтобы упростить процесс.

Как создать учетные данные сервисного аккаунта, используя библиотеку

Ниже собраны примеры кода на разных языках программирования, показывающие, как можно создать учетные данные сервисного аккаунта.

Java

    GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
      .setJsonFactory(jsonFactory)
      .setServiceAccountId("ServiceAccountEmail@developer.gserviceaccount.com")
      .setServiceAccountScopes("https://www.googleapis.com/auth/wallet_object.issuer")
      .setServiceAccountPrivateKey(new File("/example/path/to/privatekey.json"))
      .build();

PHP

    $client = new Google_Client();
    $client->setApplicationName('Wallet Objects App');
    $client->setScopes(array('https://www.googleapis.com/auth/wallet_object.issuer'));
    $client->setAuthConfigFile('/example/path/to/privatekey.json');

Python

    file_path = '/example/path/to/privatekey.json'
    credentials = ServiceAccountCredentials.from_json_keyfile_name(
        file_path,
        'https://www.googleapis.com/auth/wallet_object.issuer')

    http = httplib2.Http()
    http = credentials.authorize(http)

Используя полученные учетные данные, вы сможете выполнять команды REST API, например добавлять классы.

Как получить токен доступа вручную

Ознакомьтесь с разделом Как использовать протокол OAuth 2.0 в межсерверных приложениях, чтобы узнать, как получить токен доступа вручную. Вам нужно создать веб-токен JSON (JWT) и заверить его, используя закрытый ключ, а затем составить запрос токена доступа в подходящем формате. Ваше приложение отправит запрос на сервер авторизации Google OAuth 2.0, и тот в ответ пришлет токен. Ваше приложение сможет получить доступ к API только после получения токена. Когда срок действия токена доступа истечет, приложение должно будет повторить описанный выше процесс.

  • В поле iss в наборе утверждений JWT указывается адрес электронной почты сервисного аккаунта, созданного в Google API Console в разделе регистрации приложения.
  • В поле scope в наборе утверждений JWT приводится список разрешений, запрашиваемых приложением (вводятся через пробел).
  • Для рабочих приложений используется область действия https://www.googleapis.com/auth/wallet_object.issuer.

Выполнив описанные выше действия, ознакомьтесь с разделом Как работать с функцией "Сохранить в Google Pay". В нем рассказывается, как пользователи могут легко сохранять в Google Pay карты постоянного клиента, подарочные карты, специальные предложения, билеты на мероприятия, посадочные талоны и проездные билеты.