Как использовать ключи API с Directions API (устаревшая версия)

Продукты платформы Google Карт защищены от несанкционированного использования, поскольку принимают только те вызовы API, которые содержат действительные учетные данные для аутентификации. Эти учетные данные предоставляются в виде ключа API – уникальной строки из букв и цифр, которая связывает платежный аккаунт Google с проектом и с определенным API или SDK.

В этом руководстве показано, как создать и использовать ключ API платформы Google Карт, а также ограничить его использование.

Подготовка

Чтобы начать работу, вам потребуется создать проект с платежным аккаунтом и включенным Directions API (устаревшая версия). Подробнее о настройке в Cloud Console…

Создание ключей API

Ключ API – это уникальный идентификатор, который используется для аутентификации запросов, связанных с вашим проектом. Он нужен для учета использования API и оплаты. С вашим проектом должен быть связан хотя бы один ключ API.

Чтобы создать ключ API, выполните следующие действия.

Cloud Console

  1. Откройте страницу Google Maps Platform > Credentials (Платформа Google Карт > Учетные данные).

    Перейти к настройкам учетных данных

  2. На странице Credentials (Учетные данные) нажмите Create credentials > API key (Создать учетные данные > Ключ API).
    Появится диалоговое окно с созданным ключом API.
  3. Нажмите Close (Закрыть).
    Новый ключ API можно будет найти на странице Credentials (Учетные данные) в разделе API keys (Ключи API).
    Не забудьте настроить ограничения для ключа API, прежде чем использовать его в рабочей среде.

Cloud SDK

gcloud services api-keys create \
    --project "PROJECT" \
    --display-name "DISPLAY_NAME"

Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:

Настройка ограничений для ключей API

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

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

Cloud Console

  1. Откройте страницу Google Maps Platform > Credentials (Платформа Google Карт > Учетные данные).

    Перейти к настройкам учетных данных

  2. Выберите нужный ключ API. Откроется страница со свойствами ключа API.
  3. В разделе Key restrictions (Ограничения для ключа) установите следующие ограничения:
    • Ограничения для приложений:
      1. Чтобы принимать запросы от IP-адресов веб-серверов, входящих в составленный вами список, выберите IP addresses (web servers, cron jobs, etc.) (IP-адреса (веб-серверы, задания cron и т. д.)) в списке Application restrictions (Допустимый тип приложений). Укажите один или несколько адресов IPv4 или IPv6 или подсеть в формате CIDR. IP-адреса должны совпадать с исходными адресами, определенными серверами платформы Google Карт. Если вы используете преобразование сетевых адресов (NAT), это, как правило, будет публичный IP-адрес вашей машины.
    • Ограничения для API:
      1. Нажмите Restrict key (Применить ограничения для ключа).
      2. В раскрывающемся списке Select APIs (Выберите API) нажмите Directions API (Legacy) (Directions API (устаревшая версия)). Если Directions API (Legacy) нет в списке, его необходимо включить.
  4. Внеся все изменения, нажмите Сохранить.

Cloud SDK

Список существующих ключей.

gcloud services api-keys list --project="PROJECT"

Снятие ограничений с существующего ключа.

gcloud services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --clear-restrictions

Настройка новых ограничений для существующего ключа.

gcloud services api-keys update projects/PROJECT/locations/global/keys/KEY_ID \
    --api-target=service=directions-backend.googleapis.com
    --allowed-ips="IP_ADDRESS"

Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:

Добавление ключа API в запрос

Каждый запрос к Directions API (устаревшей версии) должен содержать ключ API. В следующем примере замените YOUR_API_KEY своим ключом API.

https://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&key=YOUR_API_KEY

Протокол HTTPS является обязательным для запросов с ключом API.