Гугл api: Введение в google api / Хабр
делаем запросы в Google Geocoding API
В этом коротком руководстве мы покажем вам, как выполнять вызовы API для API геолокации Google. Цель состоит в том, чтобы иметь возможность быстро и легко получать данные адреса, почтового индекса или просто города с помощью API, который является важной частью Google Maps.
Чем больше мы используем сторонних API, тем лучше могут быть наши сервисы. API геолокации может очистить наши адресные данные без особых усилий.
Установка
Мы собираемся использовать Python requests, чтобы сделать наши вызовы API намного проще.
pip install requests
Google Geocoding API
Помните, что у API Google есть несколько бесплатных запросов, но после определенного момента они начинают взимать с вас плату.
- Зарегистрируйтесь в Google Cloud Compute (GCP)
- Войдите в консоль .
- Зайдите в API Geocoding, нажмите здесь «Включить». Если эта ссылка не работает, выполните поиск API Geocoding , откройте его и нажмите «Включить»
Возможно, вам придется создать проект и выполнить несколько других настроек, чтобы добраться до точки, где вы можете активировать API Geocoding
Получите свои учетные данные Google Cloud API:
- Выполните поиск «Credentials» в GCP
- Нажмите «Create Credentials» > «API Key»
- Скопируйте значение ключа, мое было
AIzaSyBSXMpu6lqd8kViIpy1GNWQ1symTXdMRzw
это ваш ключ API Google Cloud.
Ключи API Google Cloud Compute имеют неограниченные привилегии, поэтому настоятельно рекомендуется ограничить ключ API как API Geocoding, так и локальным IP-адресом.
Код
Ниже мы собираемся извлечь широту и долготу из любого заданного адреса, почтового индекса или города. Это действительно просто и легко.
GOOGLE_API_KEY = 'your_api_key_from_above' def extract_lat_long_via_address(address_or_zipcode): lat, lng = None, None api_key = GOOGLE_API_KEY base_url = "https://maps.googleapis.com/maps/api/geocode/json" endpoint = f"{base_url}?address={address_or_zipcode}&key={api_key}" # Посмотрите, как наша конечная точка включает наш ключ API? Да, это еще одна причина, чтобы ограничить ключ r = requests.get(endpoint) if r.status_code not in range(200, 299): return None, None try: ''' Этот блок try в случае, если любой из наших входов недействителен. Это делается вместо того, чтобы на самом деле писать обработчики для всех видов ответов. ''' results = r.json()['results'][0] lat = results['geometry']['location']['lat'] lng = results['geometry']['location']['lng'] except: pass return lat, lng
Работаем с API Google Drive с помощью Python
Решил написать достаточно подробную инструкцию о том как работать с API Google Drive v3 с помощью клиентской библиотеки Google API для Python. Статья будет полезна тем, кому приходится часто работать с документами в Google Drive: скачивать и загружать новые документы, удалять файлы, создавать папки.
Также я покажу пример того как можно с помощью API скачивать файлы Google Sheets в формате Excel, или наоборот: заливать в Google Drive файл Excel в виде документа Google Sheets.
Использование API Google Drive может быть полезным для автоматизации различной рутины, связанной с отчетностью. Например, я использую его для того, чтобы по расписанию загружать заранее подготовленные отчеты в папку Google Drive, к которой есть доступ у конечных потребителей отчетов.
Все примеры на Python 3.
Создание сервисного аккаунта и получение ключа
Прежде всего создаем сервисный аккаунт в консоли Google Cloud и для email сервисного аккаунта открываем доступ на редактирование необходимых папок. Не забудьте добавить в папку файлы, если их там нет, потому что файл нам понадобится, когда мы будем выполнять первый пример — скачивание файлов из Google Drive.
Я записал небольшой скринкаст, чтобы показать как получить ключ для сервисного аккаунта в формате JSON.
Установка клиентской библиотеки Google API и получение доступа к API
Сначала устанавливаем клиентскую библиотеку Google API для Python
pip install --upgrade google-api-python-client
Дальше импортируем нужные модули или отдельные функции из библиотек.
Ниже будет небольшое описание импортируемых модулей. Это для тех кто хочет понимать, что импортирует, но большинство просто может скопировать импорты и вставить в ноутбук 🙂
- Модуль service_account из google.oauth3 понадобится нам для авторизации с помощью сервисного аккаунта.
- Классы MediaIoBaseDownload и MediaFileUpload, как ясно из названий, пригодятся, чтобы скачать или загрузить файлы. Эти классы импортируются из googleapiclient.http
- Функция build из googleapiclient.discovery позволяет создать ресурс для обращения к API, то есть это некая абстракция над REST API Drive, чтобы удобнее обращаться к методам API.
from google.oauth3 import service_account
from googleapiclient.http import MediaIoBaseDownload,MediaFileUpload
from googleapiclient.discovery import build
import pprint
import io
pp = pprint.PrettyPrinter(indent=4)
Указываем Scopes. Scopes — это перечень возможностей, которыми будет обладать сервис, созданный в скрипте. Ниже приведены Scopes, которые относятся к API Google Drive (из официальной документации):
Как видно, разные Scope предоставляют разный уровень доступа к данным. Нас интересует Scope «https://www.googleapis.com/auth/drive», который позволяет просматривать, редактировать, удалять или создавать файлы на Google Диске.
Также указываем в переменной SERVICE_ACCOUNT_FILE путь к файлу с ключами сервисного аккаунта.
SCOPES = ['https://www.googleapis.com/auth/drive']
SERVICE_ACCOUNT_FILE = '/home/makarov/Google Drive Test-fc4f3aea4d98.json'
Создаем Credentials (учетные данные), указав путь к сервисному аккаунту, а также заданные Scopes. А затем создаем сервис, который будет использовать 3ю версию REST API Google Drive, отправляя запросы из-под учетных данных credentials.
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('drive', 'v3', credentials=credentials)
Получение списка файлов
Теперь можно получить список файлов и папок, к которым имеет доступ сервис. Для этого выполним запрос list, выдающий список файлов, со следующими параметрами:
- pageSize — количество результатов выдачи. Можете смело ставить максимальное значение 1000. У меня стоит 10 результатов, чтобы показать как быть, когда нужно получить результаты по следующей страницы результатов
- параметр files() в fields — параметр, указывающий, что нужно возвращать список файлов, где в скобках указан список полей для файлов, которые нужно показывать в результатах выдачи. Со всеми возможными полями можно познакомиться в документации (https://developers.google.com/drive/api/v3/reference/files) в разделе «Valid fields for files.list». У меня указаны поля для файлов: id (идентификатор файла в Drive), name (имя) и mimeType (тип файла). Чуть дальше мы рассмотрим пример запроса с большим количеством полей
- nextPageToken в fields — это токен следующей страницы, если все результаты не помещаются в один ответ
results = service.files().list(pageSize=10,
fields="nextPageToken, files(id, name, mimeType)"). execute()
Получили вот такие результаты:
pp.pprint(results)
print(len(results.get('files')))
10
Получив из результатов nextPageToken мы можем передать его в следущий запрос в параметре pageToken, чтобы получить результаты следующей страницы. Если в результатах будет nextPageToken, это значит, что есть ещё одна или несколько страниц с результатами
nextPageToken = results.get('nextPageToken')
results_for_next_page = service.files().list(pageSize=10,
fields="nextPageToken, files(id, name, mimeType)",
pageToken=nextPageToken).execute()
print (results_for_next_page.get('nextPageToken'))
Таким образом, мы можем сделать цикл, который будет выполняться до тех пор, пока в результатах ответа есть nextPageToken. Внутри цикла будем выполнять запрос для получения результатов страницы и сохранять результаты к первым полученным результатам
results = service. files().list(pageSize=10,
fields="nextPageToken, files(id, name, mimeType)").execute()
nextPageToken = results.get('nextPageToken')
while nextPageToken:
nextPage = service.files().list(pageSize=10,
fields="nextPageToken, files(id, name, mimeType, parents)",
pageToken=nextPageToken).execute()
nextPageToken = nextPage.get('nextPageToken')
results['files'] = results['files'] + nextPage['files']
print(len(results.get('files')))
24
Дальше давайте рассмотрим какие ещё поля можно использовать для списка возвращаемых файлов. Как я уже писал выше, со всеми полями можно ознакомиться по ссылке. Давайте рассмотрим самые полезные из них:
- parents — ID папки, в которой расположен файл/подпапка
- createdTime — дата создания файла/папки
- permissions — перечень прав доступа к файлу
- quotaBytesUsed — сколько места от квоты хранилища занимает файл (в байтах)
results = service. files().list(
pageSize=10, fields="nextPageToken, files(id, name, mimeType, parents, createdTime, permissions, quotaBytesUsed)").execute()
Отобразим один файл из результатов с расширенным списком полей. Как видно permissions содержит информацию о двух юзерах, один из которых имеет role = owner, то есть владелец файла, а другой с role = writer, то есть имеет право записи.
pp.pprint(results.get('files')[0])
Очень удобная штука, позволяющая сократить количество результатов в запросе, чтобы получать только то, что действительно нужно — это возможность задать параметры поиска для файлов. Например, мы можем задать в какой папке искать файлы, зная её id:
results = service.files().list(
pageSize=5,
fields="nextPageToken, files(id, name, mimeType, parents, createdTime)",
q="'1mCCK9QGQxLDED8_pgq2dyvkmGRXhWEtJ' in parents").execute()
pp.pprint(results['files'])
С синтаксисом поисковых запросов можно ознакомиться в документации. Ещё один удобный способ поиска нужных файлов — по имени. Вот пример запроса, где мы ищем все файлы, содержащие в названии «data»:
results = service.files().list(
pageSize=10,
fields="nextPageToken, files(id, name, mimeType, parents, createdTime)",
q="name contains 'data'").execute()
pp.pprint(results['files'])
Условия поиска можно комбинировать. Возьмем условие поиска в папке и совместим с условием поиска по названию:
results = service.files().list(
pageSize=10,
fields="nextPageToken, files(id, name, mimeType, parents, createdTime)",
q="'1uuecd6ndiZlj3d9dSVeZeKyEmEkC7qyr' in parents and name contains 'data'").execute()
pp.pprint(results['files'])
Скачивание файлов из Google Drive
Теперь рассмотрим как скачивать файлы из Google Drive. Для этого нам понадобится создать запрос request для получения файла. После этого задаем интерфейс fh для записи в файл с помощью библиотеки io, указав в filename название файла (таким образом, можно сохранять файлы из Google Drive сразу с другим названием). Затем создаем экземпляр класса MediaIoBaseDownload, передав наш интерфейс для записи файла fh и запрос для скачивания файла request. Следующим шагом скачиваем файл по небольшим кусочкам (чанкам) с помощью метода next_chunk.
Если из предыдущего описания вам мало что понятно, не запаривайтесь, просто укажите свой file_id и filename, и всё у вас будет в порядке.
file_id = '1HKC4U1BMJTsonlYJhUKzM-ygrIVGzdBr'
request = service.files().get_media(fileId=file_id)
filename = '/home/makarov/File.csv'
fh = io.FileIO(filename, 'wb')
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print ("Download %d%%." % int(status.progress() * 100))
Файлы Google Sheets или Google Docs можно конвертировать в другие форматы, указав параметр mimeType в функции export_media (обратите внимание, что в предыдущем примере скачивания файла мы использоали другую функцию get_media). Например, файл Google Sheets можно конвертировать и скачать в виде файла Excel.
file_id = '10MM2f3V98wTu7GsoZSxzr9hkTGYvq_Jfb2HACvB9KjE'
request = service.files().export_media(fileId=file_id,
mimeType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
filename = '/home/makarov/Sheet.xlsx'
fh = io.FileIO(filename, 'wb')
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print ("Download %d%%." % int(status.progress() * 100))
Затем скачанный файл можно загнать в датафрейм. Это достаточно простой способ получить данные из Google Sheet в pandas-dataframe, но есть и другие способы, например, воспользоваться библиотекой gspread.
import pandas as pd
df = pd.read_excel('/home/makarov/Sheet.xlsx')
df.head(5)
Загрузка файлов и удаление в Google Drive
Рассмотрим простой пример загрузки файла в папку. Во-первых, нужно указать folder_id — id папки (его можно получить в адресной строке браузера, зайдя в папку, либо получив все файлы и папки методом list). Также нужно указать название name, с которым файл загрузится на Google Drive. Это название может быть отличным от исходного названия файла. Параметры folder_id и name передаем в словарь file_metadata, в котором задаются метаданные загружаемого файла. В переменной file_path указываем путь к файлу. Создаем объект media, в котором будет указание по какому пути находится загружаемый файл, а также указание, что мы будем использовать возобновляемую загрузку, что позволит нам загружать большие файлы. Google рекомендует использовать этот тип загрузки для файлов больше 5 мегабайт. Затем выполняем функцию create, которая позволит загрузить файл на Google Drive.
folder_id = '1mCCK9QGQxLDED8_pgq2dyvkmGRXhWEtJ'
name = 'Script_2.py'
file_path = '/home/makarov/Script.py'
file_metadata = {
'name': name,
'parents': [folder_id]
}
media = MediaFileUpload(file_path, resumable=True)
r = service. files().create(body=file_metadata, media_body=media, fields='id').execute()
pp.pprint(r)
Как видно выше, при вызове функции create возвращается id созданного файла. Можно удалить файл, вызвав функцию delete. Но мы этого делать не будет так как файл понадобится в следующем примере
service.files().delete(fileId='18Wwvuye8dOjCZfJzGf45yQvB87Lazbzu').execute()
Сервисный аккаунт может удалить ли те файлы, которые были с помощью него созданы. Таким образом, даже если у сервисного аккаунта есть доступ на редактирование папки, то он не может удалить файлы, созданные другими пользователями. Понять что файл был создан помощью сервисного аккаунта можно задав поисковое условие с указанием email нашего сервисного аккаунта. Узнать email сервисного аккаунта можно вызвав атрибут signer_email у объекта credentials
print (credentials.signer_email)
results = service.files().list(
pageSize=10,
fields="nextPageToken, files(id, name, mimeType, parents, createdTime)",
q="'namby-pamby@tensile-verve-232214. iam.gserviceaccount.com' in owners").execute()
pp.pprint(results['files'][0:3])
Дальше — больше. С помощью API Google Drive мы можем загрузить файл с определенным mimeType, чтобы Drive понял к какому типу относится файл и предложил соответствующее приложение для его открытия.
folder_id = '1mCCK9QGQxLDED8_pgq2dyvkmGRXhWEtJ'
name = 'Sample data.csv'
file_path = '/home/makarov/sample_data_1.csv'
file_metadata = {
'name': name,
'mimeType': 'text/csv',
'parents': [folder_id]
}
media = MediaFileUpload(file_path, mimetype='text/csv', resumable=True)
r = service.files().create(body=file_metadata, media_body=media, fields='id').execute()
pp.pprint(r)
Но ещё более классная возможность — это загрузить файл одного типа с конвертацией в другой тип. Таким образом, мы можем залить csv файл из примера выше, указав для него тип Google Sheets. Это позволит сразу же конвертировать файл для открытия в Гугл Таблицах. Для этого надо в словаре file_metadata указать mimeType «application/vnd.google-apps.spreadsheet».
folder_id = '1mCCK9QGQxLDED8_pgq2dyvkmGRXhWEtJ'
name = 'Sheet from csv'
file_path = '/home/makarov/notebooks/sample_data_1.csv'
file_metadata = {
'name': name,
'mimeType': 'application/vnd.google-apps.spreadsheet',
'parents': [folder_id]
}
media = MediaFileUpload(file_path, mimetype='text/csv', resumable=True)
r = service.files().create(body=file_metadata, media_body=media, fields='id').execute()
pp.pprint(r)
Таким образом, загруженный нами CSV-файл будет доступен как Гугл Таблица:
Ещё одна часто необходимая функция — это создание папок. Тут всё просто, создание папки также делается с помощью метода create, надо только в file_metadata указать mimeType «application/vnd.google-apps. folder»
folder_id = '1uuecd6ndiZlj3d9dSVeZeKyEmEkC7qyr'
name = 'New Folder'
file_metadata = {
'name': name,
'mimeType': 'application/vnd.google-apps.folder',
'parents': [folder_id]
}
r = service.files().create(body=file_metadata,
fields='id').execute()
pp.pprint(r)
Заключение
Все содержимое этой статьи также представлено в виде ноутбука для Jupyter Notebook.
В этой статье мы рассмотрели лишь немногие возможности API Google Drive, но одни из самых необходимых:
- Просмотр списка файлов
- Скачивание документов из Google Drive (в том числе, скачивание с конвертацией, например, документов Google Sheets в формате Excel)
- Загрузка документов в Google Drive (также как и в случае со скачиванием, с возможностью конвертации в нативные форматы Google Drive)
- Удаление файлов
- Создание папок
Вступайте в группу на Facebook и подписывайтесь на мой канал в Telegram, там публикуются интересные статьи про анализ данных и не только.
Успехов!
Введение в API Google Analytics
Google Analytics предоставляет различные API для сбора данных, настройки отслеживания и создания отчетов о взаимодействии пользователей с вашим контентом. API также позволяют интегрировать данные Google Analytics с вашими собственными бизнес-данными.
Существуют следующие виды API для отчетов и настройки конфигурации:
Google Analytics Reporting API версии 4 – самый передовой программный способ получения данных из Google Analytics. Этот интерфейс дает следующие возможности:
- создавать специальные сводки для просмотра данных Google Analytics;
- автоматизировать создание сложных отчетов;
- использовать данные Google Analytics в других бизнес-приложениях.
Подробнее читайте здесь.
Google Analytics Embed API – это библиотека JavaScript, с помощью которой вы сможете буквально за несколько минут создать сводку и встроить ее на сторонний веб-сайт. В ней вы найдете множество совместимых подключаемых компонентов, которые позволяют разрабатывать одновременно простые и эффективные инструменты.
Embed API Demos
Подробнее читайте здесь.
Multi-Channel Funnels Reporting API позволяет запрашивать данные о многоканальных последовательностях для прошедшего аутентификацию пользователя. Они демонстрируют, каким образом пользователь взаимодействовал с разными источниками данных в ходе нескольких сеансов на пути к конверсии, и позволяют анализировать вклад различных маркетинговых каналов.
Подробнее читайте здесь.
Real Time Reporting API позволяет запрашивать данные в режиме реального времени для прошедшего аутентификацию пользователя
Real Time Reporting API позволяет:
- показывать число посетителей, просматривающих страницу, и стимулировать продажи, демонстрируя ограниченные запасы товаров в реальном времени;
- показывать наиболее популярный контент, например, 10 самых активных страниц;
- создавать и показывать сводки в реальном времени.
Подробнее читайте здесь.
Metadata API возвращает список столбцов (параметры и показатели), которые доступны в API Google Analytics для отчетов, а также их атрибуты, включая название в пользовательском интерфейсе, описание, сведения о поддержке сегментов и т. д.
Metadata API позволяет:
- автоматически обнаруживать новые столбцы;
- получать доступ ко всем атрибутам параметров и показателей для API отчетов Google Analytics.
Подробнее читайте здесь.
Management API обеспечивает программный доступ к данным конфигурации Google Analytics. Вы можете создавать приложения для более эффективного управления большими или сложными аккаунтами. Крупные компании с большим количеством ресурсов могут автоматически настраивать аккаунты. Если же вы разрабатываете приложение для отчетов, Management API поможет осуществлять навигацию по аккаунту.
Подробнее читайте здесь.
Как вы уже знаете, выгружать данные из Google Analytics можно в Google Таблицы или, например, с помощью инструмента Query Explorer.
Query Explorer
новейших вопросов о google-api — qaru Переполнение стека
- Около
Товары
- Для команд
Переполнение стека
Общественные вопросы и ответы
Переполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегами
Вакансии
Программирование и связанные с ним технические возможности карьерного роста
Талант
Нанимайте технических специалистов и создавайте свой бренд работодателя
Реклама
Обратитесь к разработчикам и технологам со всего мира
- О компании
Аутентификация
— документация google-api-core
С 1 января 2020 года эта библиотека больше не поддерживает Python 2 в последней выпущенной версии. Версии библиотек, выпущенные до этой даты, по-прежнему будут доступны. Для получения дополнительной информации, пожалуйста
посетите службу поддержки Python 2 в Google Cloud.
Обзор
Если вы работаете в Compute Engine или App Engine ,
аутентификация должна «просто работать».
Если вы разрабатываете локально ,
Самый простой способ аутентификации — использовать Google Cloud SDK:
$ gcloud auth для входа в приложение по умолчанию
Обратите внимание, что эта команда генерирует учетные данные для клиентских библиотек.Для аутентификации самого CLI используйте:
Ранее для обоих случаев использовалось gcloud auth login
. Если
ваша установка gcloud
не поддерживает новую команду,
обновите пожалуйста:
$ обновление компонентов gcloud
Если вы запускаете приложение в другом месте ,
вам следует скачать ключевой файл JSON для служебного аккаунта
и укажите на него с помощью переменной окружения:
$ export GOOGLE_APPLICATION_CREDENTIALS = "/ путь / к / ключевому файлу. json "
Аутентификация, предоставляемая клиентом
Каждый пакет использует клиента
в качестве основы для взаимодействия с API.
Например:
из хранилища данных импорта google.cloud
client = datastore.Client ()
Отсутствие аргументов «просто сработает», если вы следовали
инструкции в Обзоре.
Учетные данные выводятся из вашей локальной среды с помощью
Учетные данные приложения Google по умолчанию.
Явные учетные данные
Учетные данные приложения по умолчанию, обсужденные выше, могут быть полезны
если ваш код должен работать в разных средах или
если вы просто не хотите, чтобы аутентификация была в центре внимания вашего кода.
Однако вы можете захотеть быть явным, потому что
ваш код будет работать только в одном месте
у вас может быть код, который нужно запускать как конкретную учетную запись службы
каждый раз (а не с локальными учетными данными)
вы можете использовать две отдельные учетные записи для одновременного доступа к данным
из разных проектов
В этих ситуациях вы можете создать явное
Credentials
объект, подходящий для вашей среды. После создания вы можете передать его непосредственно клиенту
:
client = Клиент (учетные данные = учетные данные)
Среда Google App Engine
Создать
учетные данные
только для Google App Engine:
из google.auth import app_engine
учетные данные = app_engine.Credentials ()
Среда Google Compute Engine
Создать
учетные данные
только для Google Compute Engine:
из google.auth import compute_engine
учетные данные = compute_engine.Учетные данные ()
Учетные записи служб
Учетная запись службы хранится в ключевом файле JSON.
г.
from_service_account_json ()
factory можно использовать для создания Client
с
учетные данные учетной записи службы.
Например, с ключевым файлом JSON:
client = Client.from_service_account_json ('/ путь / к / keyfile.json')
Совет
Ранее Google Cloud Console выдавала ключ PKCS12 / P12 для вашего
сервисный аккаунт. Эта библиотека не поддерживает этот ключевой формат. Вы можете
сгенерируйте новый ключ JSON для той же учетной записи службы из консоли.
Учетные записи пользователей (трехсторонний OAuth 2.0) с токеном обновления
Большинство случаев предназначены для аутентификации машин или
рабочие, а не фактические учетные записи пользователей. Однако это также
можно вызывать API Google Cloud с учетной записью пользователя через
OAuth 2.0.
Совет
Производственное приложение должно использовать служебную учетную запись ,
но вы можете захотеть использовать свою личную учетную запись пользователя при первом
начало работы с библиотекой google-cloud-python
.
Самый простой способ использовать учетные данные из учетной записи пользователя — через
Учетные данные приложения по умолчанию с использованием gcloud auth login
(как упоминалось выше) и google.auth.default ()
:
импорт google. auth
учетные данные, project = google.auth.default ()
Это по-прежнему будет следовать за приоритетом
описано выше,
поэтому убедитесь, что ни одна из других возможных сред не конфликтует
с вашими учетными данными, предоставленными пользователем.
Устранение неисправностей
Настройка учетной записи службы
Если ваше приложение не запущено на Google Compute Engine,
вам нужен сервисный аккаунт Google Developers.
Зайдите в консоль разработчика Google.
Создайте новый проект или щелкните существующий проект.
Перейдите к API и авторизация > API и включите API
что требует ваше приложение.
Примечание
Возможно, вам потребуется включить биллинг, чтобы пользоваться этими услугами.
BigQuery
Хранилище данных
Pub / Sub
Склад
Перейдите к API и аутентификации > Учетные данные .
Вы должны увидеть экран, подобный одному из следующих:
Найдите раскрывающийся список «Добавить учетные данные» и выберите «Учетная запись службы».
с помощью загрузки нового ключевого файла JSON.
Если вы хотите повторно использовать существующую учетную запись службы,
вы можете легко создать новый ключевой файл.
Просто выберите учетную запись, которую хотите использовать повторно,
и нажмите Создать новый ключ JSON :
Использование Google Compute Engine
Если ваш код работает в Google Compute Engine,
с использованием предполагаемых учетных данных приложения Google по умолчанию
будет достаточно для получения учетных данных.
Однако по умолчанию ваши учетные данные могут не предоставлять вам
доступ к услугам, которые вы собираетесь использовать.
Убедитесь, что при настройке экземпляра GCE,
вы добавляете правильные области для API, к которым хотите получить доступ:
Как пройти аутентификацию в любом Google API
В этой статье объясняется, как использовать Google Developers Console для аутентификации в любом из API Google.
Консоль разработчика может быть сложной для правильной работы, и это одна из причин, по которой я иногда сопротивляюсь использованию одного из API Google.
Давайте посмотрим, как это работает очень простым способом.
В этом руководстве предполагается, что у вас уже есть учетная запись Google.
Создать новый проект Google API
Создайте новый проект, если вы еще этого не сделали.
На панели управления нажмите Создать новый проект .
Дайте ему имя, и вы будете перенаправлены на панель управления проекта:
Добавьте API, нажав Включить API и службы .
Найдите в списке интересующий вас API.
и включите
Вот и все!
Теперь проект готов, вы можете продолжить и создать учетные данные для аутентификации.
Создание учетных данных для аутентификации
Существует 3 способа аутентификации с помощью API Google:
- OAuth 2
- Служба обслуживания
- Ключ API
Ключ API менее безопасен и ограничен по объему и использованию со стороны Google.
OAuth 2 предназначен для того, чтобы ваше приложение могло выполнять запросы от имени пользователя, и поэтому этот процесс более сложен, чем необходимо, и требует предоставления URL-адресов для обработки обратных вызовов. Слишком сложно для простого использования.
В модели аутентификации от службы к службе приложение напрямую взаимодействует с Google API, используя учетную запись службы, с помощью веб-токена JSON.
Это самый простой метод, особенно если вы создаете прототип или приложение, которое взаимодействует с вашим сервером (например, Node.js) в API Google. Это единственный метод, о котором я расскажу при тестировании статьи.
Сервис к сервису API
Чтобы использовать этот метод, вам необходимо сначала сгенерировать файл ключа JSON через Google Developers Console.
Существует еще один вариант, который включает загрузку файла .p12
и последующее преобразование его в файл pem
с помощью команды openssl
. Google больше не рекомендует его, просто использует JSON .
На панели управления проекта щелкните Создать учетные данные и выберите Ключ учетной записи службы :
Заполните форму и выберите тип ключа «JSON»:
Вот и все! Google отправил вам файл JSON:
Это содержимое этого файла JSON, который называется Файл ключей JSON :
{
"type": "service_account",
"project_id": "...",
"private_key_id": "...",
"private_key": "... ",
"client_email": "...",
"ID клиента": "...",
"auth_uri": "https://accounts.google.com/o/oauth3/auth",
"token_uri": "https://accounts.google.com/o/oauth3/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth3/v1/certs",
"client_x509_cert_url": "..."
}
Использование файла ключей JSON
Самый простой способ — поместить файл JSON в место, доступное для вашей программы, в файловой системе.
Например, у меня есть тестовое приложение под ~ / dev / test
, поэтому я поместил файл JSON в эту папку и переименовал его в auth.json
. Затем в приложении Node.js убедитесь, что переменная среды GOOGLE_APPLICATION_CREDENTIALS указывает на расположение этого файла в файловой системе.
Вы создаете веб-токен JSON, используя свойства, содержащиеся в файле:
const jwt = новый google.auth.JWT (key.client_email, null, key.private_key, scopes)
, и вы передаете это в любой запрос API, который вы делаете.
Это пример того, как использовать его с Google Analytics API. процесс.env.GOOGLE_APPLICATION_CREDENTIALS
лучше ставить вне программы, но я для ясности добавил в исходники:
'строгое использование'
const {google} = require ('googleapis')
const key = require ('./ auth.json')
const scopes = 'https://www.googleapis.com/auth/analytics.readonly'
const jwt = new google. auth.JWT (key.client_email, null, key.private_key, scopes)
const view_id = 'XXXXXXX'
process.env.GOOGLE_APPLICATION_CREDENTIALS = './auth.json'
jwt.authorize ((ошибка, ответ) => {
гугл.аналитика ('v3'). data.ga.get (
{
авторизация: jwt,
ids: 'ga:' + view_id,
'start-date': '30 дней назад',
'end-date': 'сегодня',
показатели: 'ga: pageviews'
},
(эрр, результат) => {
console.log (ошибка, результат)
}
)
})
Использовать переменные среды
Это не идеально во многих ситуациях, когда хранение вашей личной информации в файловой системе нецелесообразно или небезопасно. Например, если вы используете Heroku, лучше не помещать учетные данные для аутентификации в репозиторий, а вместо этого устанавливать их через интерфейс или консоль, предоставляемые Heroku.
Или это случай использования его на прототипах Glitch, где переменные среды скрыты от всех, кроме вас.
В этом случае лучше всего использовать переменные среды и сохранить необходимое содержимое из файла JSON. В следующем примере все, что нам нужно, это переменные client_email
и private_key
, установленные в JSON, поэтому мы можем извлечь их и установить как переменные среды, чтобы сохранить их конфиденциальность.
'строгое использование'
const {google} = require ('googleapis')
const scopes = 'https: // www.googleapis.com/auth/analytics.readonly '
const jwt = новый google.auth.JWT (
process.env.CLIENT_EMAIL,
значение NULL,
process.env.PRIVATE_KEY,
объемы
)
const view_id = 'XXXXXXX'
jwt.authorize ((ошибка, ответ) => {
google.analytics ('v3'). data.ga.get (
{
авторизация: jwt,
ids: 'ga:' + view_id,
'start-date': '30 дней назад',
'end-date': 'сегодня',
показатели: 'ga: pageviews'
},
(эрр, результат) => {
console.log (ошибка, результат)
}
)
})
Доступ к другим API
В примерах я использовал Google Analytics.
Объект google
делает его доступным по адресу google. analytics ('v3')
.
v3
— версия API.
Другие API доступны аналогичным образом:
-
google.urlshortener ('v1')
-
google.drive ('v2')
Репозиторий Maven: com.google.api-client »google-api-client
Клиентская библиотека Google API для Java
Версия Репозиторий Использование Дата 1.31 .x
1.31.0 Центральный 9 ноябрь 2020 г. 1.30.10 Центральный 241 Июль, 2020 1.30.9 Центральный 213 Февраль 2020 9045
Янв, 2020 1.30,7 Центральный 16 Декабрь 2019 г. 1.30,6 Центральный 9 Декабрь 2019 г. 1,30,5 Центральный 9044 16 1.30.4 Центральный 14 Сен, 2019 1.30.3 Центральный 138 Сен, 2019 1.30.2 15452 , 2019
1.30.1 Центральный 182 июнь 2019 1.30.0 центральный 9 июнь 2019 1.29 Центральный
9 июль, 2019 1.29.2 Центральный 184 июнь 2019 1.29.0 Центральный 11 9044 9044 9046 1.28 .x
1.28.1 Центральный 9 Июл, 2019 1. 28.0 Центральный 213 Янв, 2019 9048 1.28 x 1.27.1 Центральный 9 Июль 2019 г. 1.27.0 Центральный 195 Ноябрь 2018 г. 1.2x
1.26.1 Central 10 Jul, 2019 1.26.0 Central 173 Oct, 2018
9 api — GoDexience v1 Пакет abusiveexperiencereport предоставляет доступ к API отчета о злоупотреблениях. acceleratedmobilepageurl / v1 Пакет acceleratedmobilepageurl обеспечивает доступ к API URL ускоренных мобильных страниц (AMP). accesscontextmanager / v1 Пакет accesscontextmanager предоставляет доступ к API Access Context Manager. accesscontextmanager / v1beta Пакет accesscontextmanager предоставляет доступ к API диспетчера контекста доступа. adexchangebuyer2 / v2beta1 Пакет adexchangebuyer2 предоставляет доступ к Ad Exchange Buyer API II. adexchangebuyer / v1.2 Пакет adexchangebuyer предоставляет доступ к Ad Exchange Buyer API. adexchangebuyer / v1.3 Пакет adexchangebuyer предоставляет доступ к Ad Exchange Buyer API. adexchangebuyer / v1.4 Пакет adexchangebuyer предоставляет доступ к Ad Exchange Buyer API. adexchangeseller / v1 Пакет adexchangeseller предоставляет доступ к API продавца Ad Exchange. adexchangeseller / v1.1 Пакет adexchangeseller предоставляет доступ к API продавца Ad Exchange. adexchangeseller / v2.0 Пакет adexchangeseller предоставляет доступ к API продавца Ad Exchange. adexperiencereport / v1 Пакет adexperiencereport предоставляет доступ к API отчетов о впечатлениях от рекламы. admin / datatransfer / v1 Администратор пакета предоставляет доступ к Admin SDK. admin / directory / v1 Администратор пакета предоставляет доступ к Admin SDK. admin / reports / v1 Администратор пакета предоставляет доступ к Admin SDK. admob / v1 Пакет admob предоставляет доступ к API AdMob. adsensehost / v4.1 Пакет adsensehost предоставляет доступ к API хостов AdSense. adsense / v1.3 Пакет adsense предоставляет доступ к API управления AdSense. adsense / v1.4 Пакет adsense предоставляет доступ к API управления AdSense. alertcenter / v1beta1 Пакет alertcenter предоставляет доступ к G Suite Alert Center API. analyticsreporting / v4 Пакет analyticsreporting предоставляет доступ к Analytics Reporting API. analytics / v2.4 Package analytics предоставляет доступ к Google Analytics API. analytics / v3 Пакет аналитики предоставляет доступ к Google Analytics API. androiddeviceprovisioning / v1 Пакет androiddeviceprovisioning предоставляет доступ к API партнера по предоставлению устройств Android. androidnterprise / v1 Пакет androidnterprise предоставляет доступ к Google Play EMM API. androidmanagement / v1 Пакет androidmanagement предоставляет доступ к API управления Android. androidpublisher / v1 Пакет androidpublisher предоставляет доступ к Google Play Developer API. androidpublisher / v1.1 Пакет androidpublisher предоставляет доступ к API разработчика Google Play. androidpublisher / v2 Пакет androidpublisher предоставляет доступ к Google Play Developer API. androidpublisher / v3 Пакет androidpublisher предоставляет доступ к Google Play Android Developer API. apigee / v1 Пакет apigee предоставляет доступ к Apigee API. appengine / v1 Пакет appengine предоставляет доступ к API администратора App Engine. appengine / v1alpha Пакет appengine предоставляет доступ к API администратора App Engine. appengine / v1beta Пакет appengine предоставляет доступ к API администратора App Engine. appengine / v1beta4 Пакет appengine предоставляет доступ к API администратора App Engine. appengine / v1beta5 Пакет appengine предоставляет доступ к API администратора App Engine. appsactivity / v1 Пакет appsactivity предоставляет доступ к Drive Activity API. appstate / v1 Пакет appstate предоставляет доступ к API состояния приложения Google. bigquerydatatransfer / v1 Пакет bigquerydatatransfer предоставляет доступ к API передачи данных BigQuery. bigquery / v2 Пакет bigquery предоставляет доступ к API BigQuery. bigtableadmin / v1 Пакет bigtableadmin предоставляет доступ к Cloud Bigtable Admin API. bigtableadmin / v2 Пакет bigtableadmin предоставляет доступ к Cloud Bigtable Admin API. billingbudgets / v1 Пакет billingbudgets предоставляет доступ к Cloud Billing Budget API. billingbudgets / v1beta1 Пакет billingbudgets предоставляет доступ к Cloud Billing Budget API. binaryauthorization / v1 Пакет binaryauthorization предоставляет доступ к API авторизации двоичных файлов. binaryauthorization / v1beta1 Пакетная двоичная авторизация предоставляет доступ к API авторизации двоичных файлов. blogger / v2 Пакет blogger предоставляет доступ к Blogger API v3. blogger / v3 Пакет blogger обеспечивает доступ к Blogger API v3. книги / v1 Пакет книг обеспечивает доступ к API книг. calendar / v3 Календарь пакета обеспечивает доступ к Calendar API. chat / v1 Пакетный чат предоставляет доступ к API чата Hangouts. civicinfo / v2 Пакет civicinfo обеспечивает доступ к Google Civic Information API. classroom / v1 Package classroom предоставляет доступ к Google Classroom API. cloudasset / v1 Пакет cloudasset обеспечивает доступ к Cloud Asset API. cloudasset / v1beta1 Пакет облачных ресурсов обеспечивает доступ к Cloud Asset API. cloudasset / v1p1beta1 Пакет облачных ресурсов обеспечивает доступ к Cloud Asset API. cloudasset / v1p4beta1 Пакет облачных ресурсов обеспечивает доступ к Cloud Asset API. cloudasset / v1p5beta1 Пакет облачных ресурсов обеспечивает доступ к Cloud Asset API. cloudbilling / v1 Пакетный облачный биллинг обеспечивает доступ к Cloud Billing API. cloudbuild / v1 Пакет cloudbuild предоставляет доступ к Cloud Build API. cloudbuild / v1alpha1 Пакет cloudbuild предоставляет доступ к Cloud Build API. cloudbuild / v1alpha2 Пакет cloudbuild предоставляет доступ к Cloud Build API. cloudcommerceprocurement / v1 Пакет cloudcommerceprocurement предоставляет доступ к API закупок партнеров Cloud Commerce. clouddebugger / v2 Пакет clouddebugger предоставляет доступ к API Cloud Debugger. clouderrorreporting / v1beta1 Пакет clouderrorreporting предоставляет доступ к API отчетов об ошибках. облачные функции / v1 Облачные функции пакета обеспечивают доступ к API облачных функций.
Настройка ключа API Карт Google
New Look AppMaps: разные ключи для геокодера и карт
Раньше у наших пользователей не было выбора, какого поставщика карт им использовать. Теперь, с последними версиями наших AppThemes, наши пользователи теперь могут решить использовать Google Maps (который входит в стандартную комплектацию наших AppThemes) или альтернативно Bing или Mapquest , которые можно приобрести в AppThemes Marketplace .
Кроме того, при использовании наших AppThemes (Vantage и ClassiPress) у вас есть решение о том, какой поставщик карт вы используете в качестве своего Geocoder , а какой вы используете для , предоставляющего карты . Это два совершенно разных меню, которые позволяют разным поставщикам поддерживать каждое.
(Геокодирование — это процесс преобразования адресов в географические координаты, в то время как карта является визуальным представлением всей области.)
Видео, демонстрирующее, как получить ключи API
Использование Google Maps для вашего приложения Веб-сайт темы
Этот раздел будет применяться к тем пользователям AppThemes, которые хотят использовать Google Maps в качестве поставщика геокодера и / или поставщика карт.
Прежде чем вы сможете начать использовать функцию Google Maps, вам необходимо создать ключ API от Google. Это позволяет Google распознавать ваш веб-сайт и отображать карту.
Если вы собираетесь использовать Google в качестве геокодера и поставщика карт для своего сайта, вам потребуется :
- Ключ API геокодирования (это позволит определить точный адрес). Вы должны защитить свой ключ API геокодера IP-адресом (подробно объяснено в конце).
- Ключ Google Maps Javascript API (необходим для отображения карты). Вы должны защитить свой ключ API Карт с помощью HTTP-реферера (подробно объяснено в конце).
Примечание: Карты Google начали взимать с администраторов плату за использование своих услуг, как показано на снимке экрана ниже:
Чтобы настроить карты и геокодер, вам нужно найти меню Geo Services для вашей AppTheme.
Примечание. Расположение поля ключа API будет зависеть от того, какую тему и версию вы используете.
Меню Geo Services можно найти по:
- Щелкните меню Vantage или ClassiPress .
- Щелкните меню Geo Services .
- Если вы хотите использовать Google в качестве карт и поставщика геокодера , убедитесь, что вы выбрали Google из обоих раскрывающихся меню (как показано на снимке экрана ниже).Если вы хотите использовать Google только для карт, выберите его только в этом раскрывающемся меню. Если вы хотите использовать Google только в качестве геокодера, выберите его только в этом раскрывающемся списке.
- Сохраните внесенные вами изменения . Теперь у вас должно быть три вкладки в меню геосервисов (если вы используете Google в качестве геокодера и поставщика карт) с заголовками: General , Geocoder — Google и Map — Google .
Шаг 2) Использование Google в качестве поставщика геокодирования
Коротко о настройке Google Geocoder:
Создайте проект в Google Developers Console и вставьте его в поле ключа API.Это поле необязательно, но рекомендуется.
Подробная информация о настройке геокодера — Google
В следующем разделе подробно описывается, как получить ключ API для использования Google в качестве провайдера Geocoder вашего AppTheme.
- Как только вы войдете в меню геоуслуг, щелкните вкладку Geocoder — Google . Здесь нам нужно будет вставить наш ключ API геокодера Google.
- Щелкните здесь , чтобы создать ключ API , необходимый для поля Ключ API геокодера.
- Прокрутите вниз и нажмите кнопку Get Started в документации Google.
- Из флажков выберите Places (этот вариант включает оба API, которые нам понадобятся для настройки AppTheme) и нажмите Continue .
- Выберите свой проект из раскрывающегося меню или создайте новый проект.
- Нажмите кнопку Далее . Карты Google теперь являются платной услугой, поэтому вам нужно будет ввести свои платежные данные.Хотя существует бесплатный порог, Google просит вас заранее предоставить данные своей карты в случае, если вы продолжите использовать их платные услуги.
- После того, как вы ввели свои платежные данные, вам будет предоставлен доступ к вашим данным API, которые необходимы для использования Google в качестве геокодера вашей темы приложения.
- Скопируйте свой ключ API и вставьте ключ API в поле Ключ API на вкладке Геокодер — Google.
- Нажмите кнопку Сохранить изменения .
- Теперь вы настроили своего провайдера геокодера.Если вы хотите использовать Google в качестве поставщика карт, перейдите к шагу 3.
Создание ключа API для использования Google в качестве геокодера Вставьте ключ API в соответствующее поле.
Шаг 3) Использование Google в качестве поставщика карт
В следующем разделе описывается, как получить ключ API для использования Google в качестве поставщика карт вашего AppTheme.
Коротко о настройке Google Maps:
Активируйте службу Google Maps JavaScript API и вставьте ключ API.Это поле необязательно, но рекомендуется.
Подробная информация о настройке карт — Google
В следующем разделе подробно описывается, как получить ключ API для использования Google в качестве поставщика Maps вашего AppTheme.
Создание ключа API для использования Google в качестве поставщика карт
- Щелкните Здесь , чтобы создать проект, который, в свою очередь, позволит вам получить доступ к ключу API.
- Нажмите кнопку « Начало работы, ».
- Выберите во всплывающем окне опцию « Places ».
- Выберите предыдущий « Project » из раскрывающегося меню или создайте новый проект. Убедитесь, что вы дали ему уникальное имя.
- Щелкните кнопку « Далее ». Карты Google теперь являются платной услугой, поэтому вам нужно будет ввести свои платежные данные. Хотя существует бесплатный порог, Google просит вас заранее предоставить данные своей карты в случае, если вы продолжите использовать их платные услуги.
- После того, как вы ввели свои платежные данные, вам будет предоставлен доступ к вашим данным API, которые необходимы для отображения Google Maps в вашей AppTheme (всегда убедитесь, что ваш ключ API Google Maps хранится безопасно, поскольку могут начаться дополнительные расходы, если ключ попадает в не в те руки).
- Скопируйте свой ключ API , а затем вставьте его в поле API Key на вкладке «Карты — Google ».
- Нажмите кнопку Сохранить изменения . Теперь вы настроили Google Карты для тем для приложений.
- Пожалуйста, прочтите подробности о защите ваших данных API.
Вставьте свой ключ API в соответствующее поле.
Шаг 4) Защита / ограничение вашего геокодера и ключей API Карт
Этот шаг не обязателен, но рекомендуется.Защита ваших ключей гарантирует, что никто другой не сможет их использовать, что может привести к непредвиденным расходам на вашем счете.
В вашей Google Maps Platform вы всегда должны защищать свои ключи API.
Кнопка «Перейти в консоль», чтобы мы могли проверить, активны ли необходимые нам API, а ограничивает использование только вашим веб-сайтом. .
Теперь вы должны быть на своей панели инструментов, где вы можете отслеживать использование API и видеть, какие API включены.
Чтобы ваш ключ API работал с нашими Темами приложений, вам необходимо убедиться, что следующие API включены.По умолчанию они уже должны быть включены, поэтому этот шаг — просто перепроверьте.
- API геокодирования Карт Google
- Google Maps JavaScript API
- Веб-служба API Google Адресов
- API маршрутов Google Maps
Если какой-либо из вышеперечисленных API-интерфейсов НЕТ в списке, вам необходимо включить их вручную. Просто нажмите ссылку «Включить API» в верхней части панели инструментов.
Защита ваших ключей API с помощью HTTP-рефереров: этот раздел предназначен для защиты ваших карт.
Поскольку вы подтвердили, что ваш новый API работает, пришло время повысить безопасность и ограничить использование только вашего веб-сайта. Этот раздел поможет вам защитить свой Maps API Key .
- Нажмите кнопку Secure Credentials .
- Найдите свой новый Maps API-ключ и нажмите кнопку редактирования.
- Дайте ключу имя . Как правило, лучше всего подходит название вашего сайта.
- Установите ограничение ключа на «HTTP-рефереры (веб-сайты)» .
- Введите URL вашего веб-сайта . Используйте следующий формат:
* .mywebsite.com / *
Звездочка — это подстановочный знак, поэтому будут включены субдомены - Щелкните синюю кнопку «S ave ».
Теперь вы занесли свои доменные имена в белый список и ограничили запросы только http-реферерами . Это предотвращает кражу вашего драгоценного ежедневного лимита запросов API (2,500).
Примечание: Если вы получили сообщение « У вас нет разрешения на создание ключа API », см. Раздел Общие проблемы ниже.
Защита ключей API с помощью IP-адреса: этот раздел предназначен для защиты ключей API геокодера
Применение ограничения IP к API Карт Google гарантирует, что доступ разрешен только запросам из списка IP-адресов веб-серверов, которые вы предоставили.
- Посетите Панель учетных данных Google Maps .
- Выберите Maps API key , для которого вы хотите установить ограничение.
- В разделе Ключевые ограничения выберите Ограничения приложений .
- Выберите тип ограничения IP-адреса и укажите требуемую информацию после списка ограничений. Ниже типов указывают все возможные адреса IPv4 и IPv6 (если они существуют) или подсеть с использованием нотации CIDR (пример: подсеть для IPv4 192.168.0.1, 172.16.0.0/12 и подсеть для IPv6 2001: db8 :: 1 или 2001: db8 :: / 64).
- Щелкните Сохранить . После этого шага ограничение становится частью определения ключа API. Если вы не предоставите соответствующие данные или не нажмете «Сохранить», ключ API не будет ограничен.
Шаг 5) Убедитесь, что ваша карта / геокодер работает
На вкладке Geo Services , General вы можете предварительно просмотреть свою карту. Если вы правильно ввели данные API карты, ваша карта будет отображаться в меню Preview .
Вы также можете проверить правильность данных API геокодера, введя название города (например, «Лондон») в поле Test Geocode API на вкладке Общие меню Geo Services .Если код ответа — « Ok », значит, он настроен правильно.
Общие проблемы при создании / использовании карт Google
Если вам не удалось выполнить описанные выше действия, возможно, вам помогут эти проблемы.
У вас нет разрешения на создание ключа API
При попытке настроить ключ API вы можете получить это сообщение (показано на скриншоте ниже). Это означает именно то, что написано.
Перед созданием ключа API необходимо создать новые учетные данные.
- Щелкните ссылку «Учетные данные» на левой боковой панели.
- Нажмите кнопку «Создать учетные данные».
- Выберите опцию «API Key».
- Затем нажмите кнопку «Клавиша браузера» во всплывающем окне.
Теперь вы вернетесь к шагу создания ключа браузера, описанному выше, и можете продолжить.
Ошибка ключа API
Выполните описанные выше шаги, чтобы создать и добавить ключ API в свою тему. Чтобы функция карт работала, вам необходимо иметь ключи API в меню настроек AppThemes Geocoder.
Если вы выполнили описанные выше действия, но он все еще не работает, читайте дальше.
- Для вступления в силу нового ключа API может потребоваться до 5 минут.
- Подтвердите, что вы скопировали и вставили весь ключ API в параметры своей темы. Иногда по ошибке могут быть обрезаны первые или последние символы.
- Убедитесь, что ваше доменное имя совпадает с тем, которое вы зарегистрировали с помощью ключа API. Небольшая орфографическая ошибка или другое расширение доменного имени помешают работе карт (например,грамм.
Товары
Переполнение стека
Общественные вопросы и ответы
Переполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегами
Вакансии
Программирование и связанные с ним технические возможности карьерного роста
Талант
Нанимайте технических специалистов и создавайте свой бренд работодателя
Реклама
Обратитесь к разработчикам и технологам со всего мира
посетите службу поддержки Python 2 в Google Cloud.
Если вы работаете в Compute Engine или App Engine ,
аутентификация должна «просто работать».
Если вы разрабатываете локально ,
Самый простой способ аутентификации — использовать Google Cloud SDK:
$ gcloud auth для входа в приложение по умолчанию
Обратите внимание, что эта команда генерирует учетные данные для клиентских библиотек.Для аутентификации самого CLI используйте:
Ранее для обоих случаев использовалось gcloud auth login
. Если
ваша установка gcloud
не поддерживает новую команду,
обновите пожалуйста:
$ обновление компонентов gcloud
Если вы запускаете приложение в другом месте ,
вам следует скачать ключевой файл JSON для служебного аккаунта
и укажите на него с помощью переменной окружения:
$ export GOOGLE_APPLICATION_CREDENTIALS = "/ путь / к / ключевому файлу. json "
клиента
в качестве основы для взаимодействия с API.
Например:
инструкции в Обзоре.
Учетные данные выводятся из вашей локальной среды с помощью
Учетные данные приложения Google по умолчанию.
если ваш код должен работать в разных средах или
если вы просто не хотите, чтобы аутентификация была в центре внимания вашего кода.
ваш код будет работать только в одном месте
у вас может быть код, который нужно запускать как конкретную учетную запись службы
каждый раз (а не с локальными учетными данными)
вы можете использовать две отдельные учетные записи для одновременного доступа к данным
из разных проектов
Credentials
объект, подходящий для вашей среды. После создания вы можете передать его непосредственно клиенту
: учетные данные
только для Google App Engine:
учетные данные
только для Google Compute Engine:
from_service_account_json ()
factory можно использовать для создания
Client
сучетные данные учетной записи службы.
сервисный аккаунт. Эта библиотека не поддерживает этот ключевой формат. Вы можете
сгенерируйте новый ключ JSON для той же учетной записи службы из консоли.
рабочие, а не фактические учетные записи пользователей. Однако это также
можно вызывать API Google Cloud с учетной записью пользователя через
OAuth 2.0.
но вы можете захотеть использовать свою личную учетную запись пользователя при первом
начало работы с библиотекой
google-cloud-python
.Учетные данные приложения по умолчанию с использованием
gcloud auth login
(как упоминалось выше) и
google.auth.default ()
:описано выше,
поэтому убедитесь, что ни одна из других возможных сред не конфликтует
с вашими учетными данными, предоставленными пользователем.
вам нужен сервисный аккаунт Google Developers.
Зайдите в консоль разработчика Google.
Создайте новый проект или щелкните существующий проект.
Перейдите к API и авторизация > API и включите API
что требует ваше приложение.
Примечание
Возможно, вам потребуется включить биллинг, чтобы пользоваться этими услугами.
BigQuery
Хранилище данных
Pub / Sub
Склад
Перейдите к API и аутентификации > Учетные данные .
Вы должны увидеть экран, подобный одному из следующих:
Найдите раскрывающийся список «Добавить учетные данные» и выберите «Учетная запись службы».
с помощью загрузки нового ключевого файла JSON.
Если вы хотите повторно использовать существующую учетную запись службы,
вы можете легко создать новый ключевой файл.
Просто выберите учетную запись, которую хотите использовать повторно,
и нажмите Создать новый ключ JSON :
с использованием предполагаемых учетных данных приложения Google по умолчанию
будет достаточно для получения учетных данных.
доступ к услугам, которые вы собираетесь использовать.
Убедитесь, что при настройке экземпляра GCE,
вы добавляете правильные области для API, к которым хотите получить доступ:
Существует еще один вариант, который включает загрузку файла .p12
и последующее преобразование его в файл pem
с помощью команды openssl
. Google больше не рекомендует его, просто использует JSON .
{
"type": "service_account",
"project_id": "...",
"private_key_id": "...",
"private_key": "... ",
"client_email": "...",
"ID клиента": "...",
"auth_uri": "https://accounts.google.com/o/oauth3/auth",
"token_uri": "https://accounts.google.com/o/oauth3/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth3/v1/certs",
"client_x509_cert_url": "..."
}
~ / dev / test
, поэтому я поместил файл JSON в эту папку и переименовал его в auth.json
. Затем в приложении Node.js убедитесь, что переменная среды GOOGLE_APPLICATION_CREDENTIALS указывает на расположение этого файла в файловой системе. const jwt = новый google.auth.JWT (key.client_email, null, key.private_key, scopes)
процесс.env.GOOGLE_APPLICATION_CREDENTIALS
лучше ставить вне программы, но я для ясности добавил в исходники: 'строгое использование'
const {google} = require ('googleapis')
const key = require ('./ auth.json')
const scopes = 'https://www.googleapis.com/auth/analytics.readonly'
const jwt = new google. auth.JWT (key.client_email, null, key.private_key, scopes)
const view_id = 'XXXXXXX'
process.env.GOOGLE_APPLICATION_CREDENTIALS = './auth.json'
jwt.authorize ((ошибка, ответ) => {
гугл.аналитика ('v3'). data.ga.get (
{
авторизация: jwt,
ids: 'ga:' + view_id,
'start-date': '30 дней назад',
'end-date': 'сегодня',
показатели: 'ga: pageviews'
},
(эрр, результат) => {
console.log (ошибка, результат)
}
)
})
client_email
и private_key
, установленные в JSON, поэтому мы можем извлечь их и установить как переменные среды, чтобы сохранить их конфиденциальность. 'строгое использование'
const {google} = require ('googleapis')
const scopes = 'https: // www.googleapis.com/auth/analytics.readonly '
const jwt = новый google.auth.JWT (
process.env.CLIENT_EMAIL,
значение NULL,
process.env.PRIVATE_KEY,
объемы
)
const view_id = 'XXXXXXX'
jwt.authorize ((ошибка, ответ) => {
google.analytics ('v3'). data.ga.get (
{
авторизация: jwt,
ids: 'ga:' + view_id,
'start-date': '30 дней назад',
'end-date': 'сегодня',
показатели: 'ga: pageviews'
},
(эрр, результат) => {
console.log (ошибка, результат)
}
)
})
google
делает его доступным по адресу google. analytics ('v3')
. v3
— версия API. google.urlshortener ('v1')
google.drive ('v2')
1.31 .x
9045
, 2019
Центральный
1.28 .x
1.2x
9 api — GoDexience v1 Пакет abusiveexperiencereport предоставляет доступ к API отчета о злоупотреблениях. acceleratedmobilepageurl / v1 Пакет acceleratedmobilepageurl обеспечивает доступ к API URL ускоренных мобильных страниц (AMP). accesscontextmanager / v1 Пакет accesscontextmanager предоставляет доступ к API Access Context Manager. accesscontextmanager / v1beta Пакет accesscontextmanager предоставляет доступ к API диспетчера контекста доступа. adexchangebuyer2 / v2beta1 Пакет adexchangebuyer2 предоставляет доступ к Ad Exchange Buyer API II. adexchangebuyer / v1.2 Пакет adexchangebuyer предоставляет доступ к Ad Exchange Buyer API. adexchangebuyer / v1.3 Пакет adexchangebuyer предоставляет доступ к Ad Exchange Buyer API. adexchangebuyer / v1.4 Пакет adexchangebuyer предоставляет доступ к Ad Exchange Buyer API. adexchangeseller / v1 Пакет adexchangeseller предоставляет доступ к API продавца Ad Exchange. adexchangeseller / v1.1 Пакет adexchangeseller предоставляет доступ к API продавца Ad Exchange. adexchangeseller / v2.0 Пакет adexchangeseller предоставляет доступ к API продавца Ad Exchange. adexperiencereport / v1 Пакет adexperiencereport предоставляет доступ к API отчетов о впечатлениях от рекламы. admin / datatransfer / v1 Администратор пакета предоставляет доступ к Admin SDK. admin / directory / v1 Администратор пакета предоставляет доступ к Admin SDK. admin / reports / v1 Администратор пакета предоставляет доступ к Admin SDK. admob / v1 Пакет admob предоставляет доступ к API AdMob. adsensehost / v4.1 Пакет adsensehost предоставляет доступ к API хостов AdSense. adsense / v1.3 Пакет adsense предоставляет доступ к API управления AdSense. adsense / v1.4 Пакет adsense предоставляет доступ к API управления AdSense. alertcenter / v1beta1 Пакет alertcenter предоставляет доступ к G Suite Alert Center API. analyticsreporting / v4 Пакет analyticsreporting предоставляет доступ к Analytics Reporting API. analytics / v2.4 Package analytics предоставляет доступ к Google Analytics API. analytics / v3 Пакет аналитики предоставляет доступ к Google Analytics API. androiddeviceprovisioning / v1 Пакет androiddeviceprovisioning предоставляет доступ к API партнера по предоставлению устройств Android. androidnterprise / v1 Пакет androidnterprise предоставляет доступ к Google Play EMM API. androidmanagement / v1 Пакет androidmanagement предоставляет доступ к API управления Android. androidpublisher / v1 Пакет androidpublisher предоставляет доступ к Google Play Developer API. androidpublisher / v1.1 Пакет androidpublisher предоставляет доступ к API разработчика Google Play. androidpublisher / v2 Пакет androidpublisher предоставляет доступ к Google Play Developer API. androidpublisher / v3 Пакет androidpublisher предоставляет доступ к Google Play Android Developer API. apigee / v1 Пакет apigee предоставляет доступ к Apigee API. appengine / v1 Пакет appengine предоставляет доступ к API администратора App Engine. appengine / v1alpha Пакет appengine предоставляет доступ к API администратора App Engine. appengine / v1beta Пакет appengine предоставляет доступ к API администратора App Engine. appengine / v1beta4 Пакет appengine предоставляет доступ к API администратора App Engine. appengine / v1beta5 Пакет appengine предоставляет доступ к API администратора App Engine. appsactivity / v1 Пакет appsactivity предоставляет доступ к Drive Activity API. appstate / v1 Пакет appstate предоставляет доступ к API состояния приложения Google. bigquerydatatransfer / v1 Пакет bigquerydatatransfer предоставляет доступ к API передачи данных BigQuery. bigquery / v2 Пакет bigquery предоставляет доступ к API BigQuery. bigtableadmin / v1 Пакет bigtableadmin предоставляет доступ к Cloud Bigtable Admin API. bigtableadmin / v2 Пакет bigtableadmin предоставляет доступ к Cloud Bigtable Admin API. billingbudgets / v1 Пакет billingbudgets предоставляет доступ к Cloud Billing Budget API. billingbudgets / v1beta1 Пакет billingbudgets предоставляет доступ к Cloud Billing Budget API. binaryauthorization / v1 Пакет binaryauthorization предоставляет доступ к API авторизации двоичных файлов. binaryauthorization / v1beta1 Пакетная двоичная авторизация предоставляет доступ к API авторизации двоичных файлов. blogger / v2 Пакет blogger предоставляет доступ к Blogger API v3. blogger / v3 Пакет blogger обеспечивает доступ к Blogger API v3. книги / v1 Пакет книг обеспечивает доступ к API книг. calendar / v3 Календарь пакета обеспечивает доступ к Calendar API. chat / v1 Пакетный чат предоставляет доступ к API чата Hangouts. civicinfo / v2 Пакет civicinfo обеспечивает доступ к Google Civic Information API. classroom / v1 Package classroom предоставляет доступ к Google Classroom API. cloudasset / v1 Пакет cloudasset обеспечивает доступ к Cloud Asset API. cloudasset / v1beta1 Пакет облачных ресурсов обеспечивает доступ к Cloud Asset API. cloudasset / v1p1beta1 Пакет облачных ресурсов обеспечивает доступ к Cloud Asset API. cloudasset / v1p4beta1 Пакет облачных ресурсов обеспечивает доступ к Cloud Asset API. cloudasset / v1p5beta1 Пакет облачных ресурсов обеспечивает доступ к Cloud Asset API. cloudbilling / v1 Пакетный облачный биллинг обеспечивает доступ к Cloud Billing API. cloudbuild / v1 Пакет cloudbuild предоставляет доступ к Cloud Build API. cloudbuild / v1alpha1 Пакет cloudbuild предоставляет доступ к Cloud Build API. cloudbuild / v1alpha2 Пакет cloudbuild предоставляет доступ к Cloud Build API. cloudcommerceprocurement / v1 Пакет cloudcommerceprocurement предоставляет доступ к API закупок партнеров Cloud Commerce. clouddebugger / v2 Пакет clouddebugger предоставляет доступ к API Cloud Debugger. clouderrorreporting / v1beta1 Пакет clouderrorreporting предоставляет доступ к API отчетов об ошибках. облачные функции / v1 Облачные функции пакета обеспечивают доступ к API облачных функций.
Создайте проект в Google Developers Console и вставьте его в поле ключа API.Это поле необязательно, но рекомендуется.
Активируйте службу Google Maps JavaScript API и вставьте ключ API.Это поле необязательно, но рекомендуется.
* .mywebsite.com / *
Звездочка — это подстановочный знак, поэтому будут включены субдомены