Как получить API-ключ Google #3066
Для корректной работы карт Google на сайте вам необходимо получить API-ключ.
Подробно о том, как это сделать вы можете прочитать в инструкции Google или в тексте ниже.
Шаг 1
Для того чтобы получить API-ключ от Google сперва перейдите по ссылке https://cloud.google.com/maps-platform/.
Шаг 2
Нажмите на кнопку «Get started».
Шаг 2
С 2018 года Google запустил сервис Google Maps Platform, и в соответствии с этим стал действовать новый тарифный план Google, подразумевающий оплату за использование API карт, маршрутов и мест.
В связи с этим если у вас нет платежного аккаунта Google, вам будет предложено его создать — подтвердите действие и далее создайте и привяжите платежный аккаунт к нужному проекту.
![]()
Если платежный аккаунт подключен, на него каждый месяц будет начисляться 200 долларов для бесплатного использования API с запросами к картам и маршрутам.
200 долларов — это более 25000 запросов к картам с вашего сайта.
Дополнительно оплачивать использование API вам придется лишь в том случае, если данный лимит в 200 долларов в месяц будет исчерпан (для этого пользователи вашего сайта должны воспользоваться картами больше 25000 раз).
Шаг 3
После подключения платежного аккаунта откроется окно, в котором вам будет необходимо отметить нужные вам возможности для карт (рекомендуем отметить все 3 галочки) и нажмите «Включить».
![]()
Шаг 6
Откроется окно с ключом, который вам будет необходимо скопировать.
![]()
- Полученный ключ вы сможете указать в соответствующем разделе Системы Управления — это позволит корректно работать google-картам на вашем сайте. Подробнее по ссылке.
Обратите внимание!
Чтобы ключ работал, в настройках должны быть активированы «Geocoding API» и «Geolocation API». Они располагаются на панели разработчика, на вкладке «APIs».
«Geocoding API» и «Geolocation API» должны располагаться в списке «Enabled APIs», как это изображено на скрине ниже.

Если эти две настройки API находятся в списке «Additional APIs» — поочередно откройте каждую и активируйте с помощью кнопки «Enable».
![]()
Читайте также
Мы создаём веб-сайты для России и зарубежных рынков с 1997 года. Наша команда – более пятисот сотрудников в разных странах и городах.
Понимание потребностей онлайн-бизнеса, опыт взаимодействия с тысячами клиентов, высокая квалификация персонала, собственные «ноу-хау» и хороший объём заказов позволяют веб-студии Мегагрупп.ру предлагать услуги высокого качества по удивительно низким и «вкусным» ценам.
Этот сайт был создан на платформе
CMS S3 от Megagroup.ru
Данный сайт защищен с помощью reCAPTCHA и соответствует
Политике конфиденциальности и Условиям использования Google.
Как получить API-ключ для подключения карт Google?
Компания Google обновила политику использования карт. Теперь, чтобы добавить карту на сайт, нужно получить API ключ и указать его в настройках виджета «Карты».
Перейдите на страницу Google Maps Platform и нажмите кнопку «Get started». Вы автоматически будете перенаправлены на создание аккаунта в Google Cloud Platform. Выберите свою страну и примите условия использования Google.

На следующем шаге заполните данные об адресе плательщика и данные банковской карты. Эта информация необходима Google для верификации вашего аккаунта. Для проверки карты Google спишет с нее 1$, списанная сумма вернется обратно на вашу карту в течение часа.

После этого вы будете перенаправлены в личный кабинет Google Cloud. Нажмите кнопку «Создать платежный аккаунт».

Во всплывающем окне выберите продукт «Карты» и нажмите «Далее». Подтвердите включение API.

Скопируйте ключ, который выдаст вам система и закройте окно.

Перейдите в меню в раздел «API и сервисы» — «Библиотека».

В разделе «Карты» нажмите на «Показать все».

Выберите «Geocoding API».


Вернитесь в раздел «Карты» и убедитесь, что «Maps JavaScript API» также включен.
Теперь вернитесь в конструктор в настройки виджета «Карты» вставьте API ключ, который вы копировали ранее.

Совет:
Взять API ключ можно также в разделе «API и сервисы» — «Учетные данные»

Примечание:
На ваш счет в Google Cloud Platform будет зачислен кредит 300$, которые можно тратить в течение 12 месяцев. После превышения этой суммы или срока пользования бесплатный пробный период заканчивается, и Google потребует активировать платную подписку.
Для вас эти 300$ являются бесплатной возможностью использовать карты Google в течение года.
Деньги со счета будут тратиться на загрузку карт на вашем сайте. Google ввел специальные тарифы и лимиты: если вы не превышаете лимит в 100 000 загрузок в месяц (1 открытие страницы с картой — 1 загрузка), то для вас стоимость 1000 загрузок — 7$.
Ознакомиться с тарифами Google вы можете в разделе с документацией.
Управлять лимитами вы можете в разделе «IAM и администрирование» — «Квоты».

Попробуйте прямо сейчас!
Как получить апи для гугл карт
В примере ниже использованы стандартные библиотеки Python для подписи URL. Скачать код можно здесь.
#!/usr/bin/python # -*- coding: utf-8 -*- """ Signs a URL using a URL signing secret """ import hashlib import hmac import base64 import urllib.parse as urlparse def sign_url(input_url=None, secret=None): """ Sign a request URL with a URL signing secret. Usage: from urlsigner import sign_url signed_url = sign_url(input_url=my_url, secret=SECRET) Args: input_url - The URL to sign secret - Your URL signing secret Returns: The signed request URL """ if not input_url or not secret: raise Exception("Both input_url and secret are required") url = urlparse.urlparse(input_url) # We only need to sign the path+query part of the string url_to_sign = url.path + "?" + url.query # Decode the private key into its binary format # We need to decode the URL-encoded private key decoded_key = base64.urlsafe_b64decode(secret) # Create a signature using the private key and the URL-encoded # string using HMAC SHA1. This signature will be binary. signature = hmac.new(decoded_key, str.encode(url_to_sign), hashlib.sha1) # Encode the binary signature into base64 for use within a URL encoded_signature = base64.urlsafe_b64encode(signature.digest()) original_url = url.scheme + "://" + url.netloc + url.path + "?" + url.query # Return signed URL return original_url + "&signature=" + encoded_signature.decode() if __name__ == "__main__": input_url = input("URL to Sign: ") secret = input("URL signing secret: ") print("Signed URL: " + sign_url(input_url, secret))
Java
В примере ниже используется класс java.util.Base64 , который добавлен в версии JDK 1.8. Для более старых версий может потребоваться использование Apache Commons или аналогичных библиотек. Скачать код можно здесь.
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Base64; // JDK 1.8 only - older versions may need to use Apache Commons or similar. import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.net.URL; import java.io.BufferedReader; import java.io.InputStreamReader; public class UrlSigner < // Note: Generally, you should store your private key someplace safe // and read them into your code private static String keyString = "YOUR_PRIVATE_KEY"; // The URL shown in these examples is a static URL which should already // be URL-encoded. In practice, you will likely have code // which assembles your URL from user or web service input // and plugs those values into its parameters. private static String urlString = "YOUR_URL_TO_SIGN"; // This variable stores the binary key, which is computed from the string (Base64) key private static byte[] key; public static void main(String[] args) throws IOException, InvalidKeyException, NoSuchAlgorithmException, URISyntaxException < BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); String inputUrl, inputKey = null; // For testing purposes, allow user input for the URL. // If no input is entered, use the static URL defined above. System.out.println("Enter the URL (must be URL-encoded) to sign: "); inputUrl = input.readLine(); if (inputUrl.equals("")) < inputUrl = urlString; >// Convert the string to a URL so we can parse it URL url = new URL(inputUrl); // For testing purposes, allow user input for the private key. // If no input is entered, use the static key defined above. System.out.println("Enter the Private key to sign the URL: "); inputKey = input.readLine(); if (inputKey.equals("")) < inputKey = keyString; >UrlSigner signer = new UrlSigner(inputKey); String request = signer.signRequest(url.getPath(),url.getQuery()); System.out.println("Signed URL :" + url.getProtocol() + "://" + url.getHost() + request); > public UrlSigner(String keyString) throws IOException < // Convert the key from 'web safe' base 64 to binary keyString = keyString.replace('-', '+'); keyString = keyString.replace('_', '/'); System.out.println("Key: " + keyString); // Base64 is JDK 1.8 only - older versions may need to use Apache Commons or similar. this.key = Base64.getDecoder().decode(keyString); >public String signRequest(String path, String query) throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException, URISyntaxException < // Retrieve the proper URL components to sign String resource = path + '?' + query; // Get an HMAC-SHA1 signing key from the raw key bytes SecretKeySpec sha1Key = new SecretKeySpec(key, "HmacSHA1"); // Get an HMAC-SHA1 Mac instance and initialize it with the HMAC-SHA1 key Mac mac = Mac.getInstance("HmacSHA1"); mac.init(sha1Key); // compute the binary signature for the request byte[] sigBytes = mac.doFinal(resource.getBytes()); // base 64 encode the binary signature // Base64 is JDK 1.8 only - older versions may need to use Apache Commons or similar. String signature = Base64.getEncoder().encodeToString(sigBytes); // convert the signature to 'web safe' base 64 signature = signature.replace('+', '-'); signature = signature.replace('/', '_'); return resource + "&signature=" + signature; >>
Node.js
В примере ниже для подписи URL использованы оригинальные модули Node. Скачать код можно здесь.
‘use strict’ const crypto = require(‘crypto’); const url = require(‘url’); /** * Convert from ‘web safe’ base64 to true base64. * * @param safeEncodedString The code you want to translate * from a web safe form. * @return */ function removeWebSafe(safeEncodedString) < return safeEncodedString.replace(/-/g, '+').replace(/_/g, '/'); >/** * Convert from true base64 to ‘web safe’ base64 * * @param encodedString The code you want to translate to a * web safe form. * @return */ function makeWebSafe(encodedString) < return encodedString.replace(/\+/g, '-').replace(/\//g, '_'); >/** * Takes a base64 code and decodes it. * * @param code The encoded data. * @return */ function decodeBase64Hash(code) < // "new Buffer(. )" is deprecated. Use Buffer.from if it exists. return Buffer.from ? Buffer.from(code, 'base64') : new Buffer(code, 'base64'); >/** * Takes a key and signs the data with it. * * @param key Your unique secret key. * @param data The url to sign. * @return */ function encodeBase64Hash(key, data) < return crypto.createHmac('sha1', key).update(data).digest('base64'); >/** * Sign a URL using a secret key. * * @param path The url you want to sign. * @param secret Your unique secret key. * @return */ function sign(path, secret)
C#
В примере ниже для подписи URL использована библиотека System.Security.Cryptography по умолчанию. Обратите внимание, что для реализации безопасной версии URL необходимо преобразовать стандартную кодировку Base64. Скачать код можно здесь.
using System; using System.Collections.Generic; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; using System.Web; namespace SignUrl < public struct GoogleSignedUrl < public static string Sign(string url, string keyString) < ASCIIEncoding encoding = new ASCIIEncoding(); // converting key to bytes will throw an exception, need to replace '-' and '_' characters first. string usablePrivateKey = keyString.Replace("-", "+").Replace("_", "/"); byte[] privateKeyBytes = Convert.FromBase64String(usablePrivateKey); Uri uri = new Uri(url); byte[] encodedPathAndQueryBytes = encoding.GetBytes(uri.LocalPath + uri.Query); // compute the hash HMACSHA1 algorithm = new HMACSHA1(privateKeyBytes); byte[] hash = algorithm.ComputeHash(encodedPathAndQueryBytes); // convert the bytes to string and make url-safe by replacing '+' and '/' characters string signature = Convert.ToBase64String(hash).Replace("+", "-").Replace("/", "_"); // Add the signature to the existing URI. return uri.Scheme+"://"+uri.Host+uri.LocalPath + uri.Query +"&signature=" + signature; >> class Program < static void Main() < // Note: Generally, you should store your private key someplace safe // and read them into your code const string keyString = "YOUR_PRIVATE_KEY"; // The URL shown in these examples is a static URL which should already // be URL-encoded. In practice, you will likely have code // which assembles your URL from user or web service input // and plugs those values into its parameters. const string urlString = "YOUR_URL_TO_SIGN"; string inputUrl = null; string inputKey = null; Console.WriteLine("Enter the URL (must be URL-encoded) to sign: "); inputUrl = Console.ReadLine(); if (inputUrl.Length == 0) < inputUrl = urlString; >Console.WriteLine("Enter the Private key to sign the URL: "); inputKey = Console.ReadLine(); if (inputKey.Length == 0) < inputKey = keyString; >Console.WriteLine(GoogleSignedUrl.Sign(inputUrl,inputKey)); > > >
Вы можете использовать следующий URL и закрытый ключ, чтобы проверить, создается ли правильная подпись. Обратите внимание, что этот закрытый ключ предназначен исключительно для тестирования и не будет принят ни одним сервисом Google.
- URL: https://maps.googleapis.com/maps/api/geocode/json?address=New+York&client= clientID
- Закрытый ключ: vNIXE0xscrmjlyV-12Nj_BvUPaw=
- Часть URL для подписи: /maps/api/geocode/json?address=New+York&client= clientID
- Подпись: chaRF2hTJKOScPr-RQCEhZbSzIE=
- Подписанный URL полностью: https://maps.googleapis.com/maps/api/geocode/json?address=New+York&client= clientID &signature=chaRF2hTJKOScPr-RQCEhZbSzIE=
Примеры на других языках
Примеры на других языках доступны в проекте подписи URL.
Подробная информация о вашем закрытом криптографическом ключе
Ваш закрытый криптографический ключ для подписи URL предоставляется вместе с идентификатором клиента и является «секретным общим ключом», который используется вами и Google. Ключ для подписи принадлежит исключительно вам и уникален для вашего идентификатора клиента. Поэтому его не следует разглашать. Этот ключ ни в коем случае нельзя пересылать в запросах, хранить на сайтах или публиковать на общедоступных форумах. Любой, кто получит этот ключ, сможет создавать ложные запросы от вашего имени.
Примечание. Этот закрытый криптографический ключ для подписи не идентичен ключам API, которые можно получить в Google Cloud Console.
Если вы потеряли закрытый криптографический ключ, его можно восстановить. Для этого войдите в Cloud Console и нажмите Карты: управление идентификатором клиента.
Примечание. Когда срок действия лицензии с тарифным планом Premium истечет, раздел Client ID исчезнет со страницы Учетные данные в Cloud Console.
Устранение неполадок, связанных с аутентификацией
Если ваш запрос имеет неверный формат или недопустимую подпись, платформа Google Карт вернет ошибку HTTP 403 (Forbidden) .
Для устранения неполадок с отдельными URL можно использовать отладчик URL Signing Debugger. Он позволяет быстро проверить URL и подпись, созданные приложением.
Кроме того, клиенты с планом Premium могут устранить неполадки, связанные с отдельными URL, в Cloud Console. Для этого нужно выбрать Resources > Google Maps Platform Premium Plan online tools > URL Signing Debugger for Web Service and Image APIs (Ресурсы > Онлайн-инструменты плана Premium платформы Google Карт > URL Signing Debugger для API веб-сервисов и изображений).
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2021-08-25 UTC.
Как получить апи для гугл карт
В этой статье рассказывается, как создать ключ API для Maps SDK для Android, добавить его в приложение и защитить приложение с помощью ограничений ключа. Вы должны добавлять ключи API во все приложения, в которых используется комплект SDK.
Подготовка
Чтобы начать использовать Maps SDK для Android, вам необходимо создать проект с платежным аккаунтом и включить Maps SDK для Android. Инструкции вы можете найти в статье Настройки в Google Cloud Console.
Создание ключей API
Ключ API – это уникальный идентификатор, который используется для аутентификации запросов, связанных с вашим проектом. Он нужен для учета использования API и оплаты. С вашим проектом должен быть связан хотя бы один ключ API.
Чтобы создать его, выполните следующие действия:
Cloud Console
- Откройте страницу Google Maps Platform > Credentials (Платформа Google Карт > Учетные данные). Перейти на страницу Credentials (Учетные данные)
- На странице Учетные данные нажмите Создать учетные данные > Ключ API.
Появится диалоговое окно с созданным ключом API. - Нажмите Close (Закрыть).
Новый ключ API можно будет найти в разделе Ключи API на странице Учетные данные.
Не забудьте настроить ограничения для ключа API, прежде чем использовать его в рабочей среде.
Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:
Настройка ограничений для ключей API
Мы настоятельно рекомендуем ограничивать использование ключей только теми API, которые необходимы для работы вашего приложения. Это защитит ваше приложение от нежелательных запросов. Подробную информацию вы найдете в Рекомендациях по обеспечению безопасности доступа к API.
Новые ограничения, которые вы задаете в Cloud Console, переопределяют условия в разделе API restrictions (Допустимые API). Поэтому мы советуем придерживаться рекомендаций и создавать отдельные ключи API для каждого приложения и каждой платформы, на которой это приложение будет доступно.
При настройке ограничений ключа API вам потребуется указать цифровой отпечаток сертификата SHA-1, который был использован для подписи в приложении. Существует два типа сертификатов.
- Сертификат для отладки. Его следует использовать исключительно при тестировании приложений и работе с кодом до публикации. Не пытайтесь опубликовать приложение, подписанное с помощью сертификата для отладки. Этот сертификат создается автоматически при выполнении отладочной сборки приложения с помощью инструментов Android SDK.
- Сертификат для выпуска. Используйте этот сертификат, когда будете готовы разместить приложение в магазине. Он создается с помощью инструментов Android SDK при выполнении сборки в процессе подготовки к выпуску.
Дополнительную информацию о цифровых сертификатах вы найдете в руководстве по добавлению подписи в приложения.
О том, как получить цифровой отпечаток сертификата, можно прочитать в разделе об аутентификации клиентов. Если вы используете функцию подписания приложений в Google Play, вы можете найти цифровой отпечаток сертификата на странице подписания приложений в Play Console.
Чтобы задать ограничение для ключа API, выполните следующие действия:
Cloud Console
- Откройте страницу Google Maps Platform > Credentials (Платформа Google Карт > Учетные данные). Перейти на страницу Credentials (Учетные данные)
- Выберите нужный ключ API. Откроется страница со свойствами ключа API.
- В разделе Key restrictions (Ограничения для ключа) установите следующие ограничения:
- Ограничения для приложений:
- Выберите Приложения для Android.
- Нажмите + Название пакета и цифровой отпечаток.
- Укажите название пакета и цифровой отпечаток сертификата SHA-1. Пример:
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
- Нажмите Restrict key (Применить ограничения для ключа).
- В раскрывающемся списке Выберите API нажмите Maps SDK для Android. Если Maps SDK для Android там нет, его необходимо включить.
Cloud SDK
Список существующих ключей.
gcloud services api-keys list --project no">PROJECT"
Снятие ограничений с существующего ключа.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --clear-restrictions
Настройка новых ограничений для существующего ключа.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --api_target="maps-android-backend.googleapis.com" --allowed-application no">SHA1_FINGERPRINT,package_name=ANDROID_PACKAGE_NAME"
Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:
- gcloud alpha services api-keys update
- gcloud alpha services api-keys lookup
- gcloud services api-keys list
Что дальше
Теперь, когда у вас есть ключ API, создайте и настройте проект Android Studio.
Отправить отзывЕсли не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2023-06-26 UTC.
