В этой документации представлены пошаговые инструкции по настройке OAuth2.0 в вашем приложении при доступе к API отеля, таким как API Travel Partner и API ценовых каналов. См. раздел Использование OAuth 2.0 для доступа к API Google для авторизации вашего приложения.
Настройка OAuth 2.0
OAuth 2.0 требует, чтобы вы идентифицировали себя, используя учетную запись службы, связанную с вашей учетной записью Google. Учетная запись службы отправляет ваш закрытый ключ в обмен на токен доступа OAuth 2.0. Затем вы можете использовать этот токен при вызовах API-интерфейсов отеля для получения данных только для чтения , таких как данные о ценах, отеле и диагностические отчеты о фиде цен на ваш отель.
Токены доступа действительны в течение часа (3600 секунд).
Если вы ранее реализовали ClientLogin, подход OAuth 2.0 аналогичен, но со следующими отличиями:
- Ваше приложение использует учетную запись службы Google для доступа к API.
- Вы передаете токен доступа OAuth 2.0 в HTTP-заголовке
Authorization
при вызове API.
Чтобы настроить свою учетную запись для использования OAuth 2.0 с любым API отелей, выполните следующие действия:
Каждый из этих шагов описан в следующих разделах.
Шаг 1. Создайте новый проект консоли Google Cloud.
Консоль Google Cloud используется для управления и просмотра данных о трафике, аутентификации и платежной информации для API Google, которые используются в ваших проектах.
В консоли Google Cloud проект представляет собой набор настроек, учетных данных и метаданных о приложении, над которым вы работаете, которое использует API-интерфейсы разработчиков Google и ресурсы Google Cloud.
Консоль Google Cloud также используется для создания учетных данных API, активации API, а также управления командой и платежной информацией, связанной с вашим проектом.
Чтобы создать новый проект консоли Google Cloud:
Войдите в свою учетную запись Gmail или Google.
Откройте консоль Google Cloud . Если это ваш первый проект, на главном экране появится кнопка СОЗДАТЬ ПРОЕКТ :
Нажмите кнопку СОЗДАТЬ ПРОЕКТ . Консоль Google Cloud отображает диалоговое окно «Новый проект» :
Введите понятное имя для вашего нового проекта в поле ввода «Имя проекта» . Под полем консоль Google Cloud генерирует для вас идентификатор проекта, гарантируя, что этот идентификатор уникален для всех проектов. Например, если вы введете «Мой новый проект», консоль Google Cloud присвоит идентификатор, например
my-new-project-266022
.Нажмите кнопку «Создать» , чтобы создать новый проект.
В меню навигации выберите API и службы > Панель мониторинга .
На следующем изображении показано меню навигации в левом верхнем углу консоли Google Cloud. Отобразится представление панели мониторинга вашего проекта:
Дополнительную информацию см. в разделе Создание проектов и управление ими .
Шаг 2. Создайте учетную запись службы и сгенерируйте ее учетные данные.
Учетные записи служб используются при межсерверном взаимодействии, например между веб-приложением и данными вашего отеля.
Чтобы создать и настроить учетную запись службы:
В главном представлении консоли Google API нажмите «Учетные данные» на панели навигации слева. Консоль Google Cloud отображает представление учетных данных .
В представлении «Учетные данные» отображаются идентификаторы клиентов и учетные данные для вашего проекта. Ваше приложение использует идентификатор клиента при запросе токена доступа OAuth 2.0. У новых проектов пока нет ни клиентов, ни учетных данных.
Нажмите ссылку «Учетные данные в API и службах» .
Нажмите кнопку «Создать учетные данные» и выберите « Ключ служебной учетной записи» из фильтра. Отобразится представление «Создать ключ учетной записи службы» .
В фильтре учетной записи службы выберите «Новая учетная запись службы» .
Введите имя учетной записи службы и идентификатор учетной записи службы.
Имя может быть любым, но идентификатор учетной записи должен быть уникальным во всех проектах. Консоль Google Cloud генерирует для вас уникальный идентификатор учетной записи на основе введенного вами имени.
Выберите JSON в качестве типа ключа. Требуется JSON .
Нажмите кнопку «Создать» . Консоль Google Cloud генерирует пару частных или открытых ключей для вашего проекта. Закрытый ключ сохраняется в папке по умолчанию, в которой ваш браузер сохраняет загрузки. Вам необходимо скачать файл формата
.JSON
.Вы используете закрытый ключ в своих скриптах или других приложениях, которые обращаются к вашему API.
Консоль Google Cloud отображает сообщение «Учетная запись службы создана» после завершения генерации ключей.
Нажмите кнопку ОК, понятно . Консоль Google Cloud возвращает вас к представлению учетных данных . Чтобы подтвердить сведения о своей учетной записи службы и просмотреть учетную запись службы, связанную с вашим проектом, нажмите « Управление учетными записями службы» в этом представлении.
Теперь с учетной записью службы связаны следующие учетные данные:
- Идентификатор клиента: уникальный идентификатор, который ваше приложение использует при запросе токена доступа OAuth 2.0.
- Адрес электронной почты: сгенерированный адрес электронной почты для учетной записи службы в форме " имя_аккаунта @ имя_проекта .google.com.iam.gserviceaccount.com".
- Отпечатки сертификата: идентификатор загруженного вами закрытого ключа.
Дополнительную информацию см. в разделе Использование OAuth 2.0 для межсерверных приложений .
Шаг 3. Предоставьте сервисному аккаунту доступ к данным вашего Hotel Center.
Последний шаг — предоставить новому сервисному аккаунту доступ к вашему Hotel Center . Учетная запись службы идентифицируется по сгенерированному адресу электронной почты, который вы создали на предыдущем шаге. Вы предоставляете доступ к этой учетной записи, используя настройки общего доступа Hotel Center .
Если у вас нет надлежащего доступа для добавления пользователей в учетную запись, свяжитесь с командой Google Hotels, используя форму обратной связи , и попросите установить право собственности на вашу учетную запись. Вы можете запросить отправку владельцу одного или нескольких электронных писем. Дополнительную информацию о доступе к Hotel Center см. в разделе Link Hotel Center и Google Ads .
Чтобы предоставить сервисному аккаунту доступ к данным вашего Hotel Center:
В новом окне браузера откройте Hotel Center .
На баннере Hotel Center by Google щелкните значок добавления пользователя, чтобы открыть диалоговое окно общего доступа.
В поле «Добавить больше людей» введите адрес электронной почты сервисной учетной записи, которую вы хотите добавить в свой Hotel Center .
Оставьте выбранной опцию «Уведомить людей» .
Выберите «Управление» в фильтре.
Нажмите кнопку «Пригласить» .
После того как вы добавите пользователей в свой Hotel Center , вашему сервисному аккаунту будет предоставлен доступ к API в течение примерно 24 часов.
После того как Google уведомит вас о том, что доступ к API включен для вашей учетной записи службы, вы можете начать получать доступ к API с помощью OAuth 2.0.
Как использовать OAuth 2.0
Чтобы получить доступ к API, ваше приложение должно идентифицировать себя в Google с помощью сгенерированного адресом электронной почты и секретным ключом учетной записи службы. Механизм аутентификации Google заменяет этот ключ на токен доступа OAuth 2.0, который вы передаете в заголовке Authorization
в вызовах API вашего приложения.
См. раздел Подготовка к делегированному вызову API .
Области применения
Ниже приведены SCOPES
API для отелей:
API-интерфейс Travel Partner: "https://www.googleapis.com/auth/travelpartner"
API цен туристических партнеров: "https://travelpartnerprices.googleapis.com"
API каналов цен: "https://www.googleapis.com/auth/travel-partner-price-upload"
При создании учетных данных следует указать учетную запись службы. См. раздел Создание учетной записи службы и создание ее учетных данных .
При разработке приложения обязательно следуйте рекомендациям по аутентификации приложения с помощью ключей API. Узнать больше .
Пример
from google.oauth2 import service_account
from google.auth.transport.requests import Request
# You can use a single or multiple scopes
SCOPES =
['https://www.googleapis.com/auth/travel-partner-price-upload','https://travelpartnerprices.googleapis.com','https://www.googleapis.com/auth/travelpartner']
SERVICE_ACCOUNT_FILE = 'service_account_key_file.json'
cred = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=SCOPES)
cred.refresh(Request())
headers = {}
cred.apply(headers)
API туристического партнера
API Travel Partner позволяет партнерам по размещению получать информацию Hotel Center и изменять данные Hotel Center для управления большими или сложными учетными записями.
Следуйте инструкциям по настройке OAUTH 2.0 , чтобы получить авторизацию для вашего Travel Partner API.
Когда вы создаете новый проект для API Travel Partners, вам необходимо включить доступ к новому проекту консоли Google Cloud.
Выполните следующие действия, чтобы включить доступ к API Travel Partners:
Перейдите в панель мониторинга вашего проекта.
Нажмите «Включить API и службы» . Откроется страница приветствия библиотеки API.
В поле поиска начните вводить «API туристического партнера», а затем консоль отобразит список API, соответствующих введенному вами слову.
Щелкните API, соответствующий таблице. Консоль Google Cloud отображает описание этого API.
Нажмите кнопку «Включить API» , чтобы включить этот API для вашего проекта.
Дополнительную информацию см. в разделе Включение и отключение служб .
API Travel Partner теперь включен для нового проекта вашего аккаунта Google.
Область действия API Travel Partner: "https://www.googleapis.com/auth/travelpartner"
Конечная точка для Travel Partner API: "https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"
API цен партнеров по путешествиям
API цен партнеров по путешествиям позволяет партнерам по размещению отправлять цены на недвижимость в Google. Это также называется ценой продолжительности пребывания (LoS) .
Следуйте инструкциям по настройке OAUTH 2.0 , чтобы получить авторизацию для вашего API цен партнеров по путешествиям.
Когда вы создаете новый проект для API цен Travel Partners, вам необходимо включить доступ к новому проекту консоли Google Cloud, что аналогично инструкциям, приведенным в API Travel Partners.
Обратитесь к инструкциям, приведенным в API туристических партнеров, и замените все экземпляры «API туристических партнеров» на «API цен туристических партнеров», чтобы активировать ваш проект.
Область действия API цен туристических партнеров: "https://travelpartnerprices.googleapis.com"
Путь загрузки для API цен партнеров по путешествиям: "/travel/lodging/uploads/accounts/<account_id>/property_data"
API ценовых каналов
API Price Feeds позволяет партнерам по размещению предоставлять индивидуальные данные о ценах для каждого отеля. Партнеры Google по размещению могут использовать OAuth2.0 для аутентификации и авторизации при загрузке цен в Google. Следуйте инструкциям по настройке OAUTH 2.0 , чтобы получить авторизацию для API ценовых каналов.
Что следует помнить
Обратите внимание на важные различия в инструкциях по авторизации для API ценовых каналов.
Партнерам следует создать новый проект OAuth2.0 «Фиды цен» в консоли Google Cloud, используя те же инструкции, что и при настройке OAuth 2.0 .
Включение API ценовых каналов в консоли Google Cloud НЕ является обязательным и его можно игнорировать. Вам понадобится только одна учетная запись и ключ службы, а затем использовать ту же учетную запись и ключ службы, чтобы предоставить проекту Price Feeds доступ к вашим данным Hotel Center. Выполните оставшиеся шаги, упомянутые в настройке OAuth2.0, чтобы завершить настройку API.
Получите токен доступа OAuth2.0 для каналов цен
Следующий шаг — получить токен доступа OAuth2.0 с областью загрузки цен на жилье, используя файл ключей сервисного аккаунта. Вы можете авторизовать запросы к своему проекту «Фиды цен», следуя инструкциям, приведенным в разделе «Подготовка к делегированному вызову API» , а затем извлечь токен доступа из полученных учетных данных и установить его в HTTP-заголовке "Authorization"
.
Область загрузки цен на жилье: "https://www.googleapis.com/auth/travel-partner-price-upload"
Загрузить цены
После получения токена доступа партнеры могут загрузить свой фид цен аналогично использованию статического IP-адреса для аутентификации и авторизации со следующей модификацией:
- Установите токен доступа в HTTP-заголовке
"Authorization"
curl -X POST -H "Authorization: Bearer <access token>"
www.google.com/travel/lodging/uploads/accounts/<account_id>/ota/hotel_rate_amount_notif --data-binary @<price_feed_file_location>
Тестовая настройка OAuth2.0 для API ценовых каналов
Вы можете протестировать настройку OAuth2.0, загрузив пустой файл или данные о реальных ценах по любому из путей загрузки. Используйте таблицу, чтобы проверить статус ответа HTTP.
Статус HTTP-ответа | Сообщение |
---|---|
200 | Successful (OK) |
401 | Service account creation or access token fetch was not successful |
403 | Service account access wasn't granted to the Hotel Center account or both the service account key and access token has expired |
Поиск неисправностей
Возникли проблемы? Быстрая проверка следующих элементов может решить проблему.
- Вы создали проект в консоли Google Cloud ?
- Вы включили эту службу в своем проекте?
- Загрузили ли вы файл
.JSON
— закрытый ключ после нажатия кнопки «Создать идентификатор клиента» и выбора учетной записи службы ? - Получили ли вы адрес электронной почты с идентификатором клиента сервисного аккаунта в форме:
nnnnnnn@app_name.google.com.iam.gserviceaccount.com
? - Вы предоставили общий доступ к своему аккаунту Hotel Ads Center сервисному аккаунту, нажав кнопку «Поделиться этим аккаунтом» ?
- Отправили ли вы адрес электронной почты сервисного аккаунта и идентификатор партнера своему техническому менеджеру по работе с клиентами (TAM)?
- Передаются ли ваши вызовы API недавно полученного токена в заголовке
Authorization
? - Вашему токену больше 1 часа?
В следующей таблице перечислены некоторые распространенные ошибки и возможные решения:
Ошибка | Описание |
---|---|
Invalid credentials | Это может означать несколько вещей. Если вы столкнулись с этой ошибкой, проверьте следующее:
|
Not found | Ваша конечная точка, скорее всего, неправильно сформирована. Убедитесь, что вы отправляете запрос GET и что URL-адрес запроса действителен (он соответствует синтаксису API, к которому вы пытаетесь получить доступ). |
Invalid string value | Одна или несколько частей конечной точки содержат недопустимый синтаксис. Например, вы могли неправильно написать часть пути. Убедитесь, что вы использовали правильные символы подчеркивания, заглавные буквы и формулировки на протяжении всего пути. |
Unsupported output format | Эта ошибка чаще всего возникает при использовании API отчетов. Вы должны указать "alt=csv" в URL-адресе вашего запроса GET . API отчетов не поддерживает JSON. |
AccessTokenRefreshError/Invalid grant | При запуске приложения эта ошибка может быть вызвана следующими причинами:
|
HotelAdsAPIConnection object has no attribute credentials | При запуске приложения указан неверный путь к файлу .JSON . |
Invalid scope | При запуске приложения ваша область API должна быть одной из следующих:
|
Forbidden | Используемый вами идентификатор учетной записи не имеет разрешения на доступ. Если вы являетесь владельцем дополнительной учетной записи, возможно, вы не сможете получить доступ к идентификатору родительской или корневой учетной записи. |
В этой документации представлены пошаговые инструкции по настройке OAuth2.0 в вашем приложении при доступе к API отеля, таким как API Travel Partner и API ценовых каналов. См. раздел Использование OAuth 2.0 для доступа к API Google для авторизации вашего приложения.
Настройка OAuth 2.0
OAuth 2.0 требует, чтобы вы идентифицировали себя, используя учетную запись службы, связанную с вашей учетной записью Google. Учетная запись службы отправляет ваш закрытый ключ в обмен на токен доступа OAuth 2.0. Затем вы можете использовать этот токен в вызовах API отеля для получения данных только для чтения , таких как цены, данные отеля и диагностические отчеты о фиде цен на ваш отель.
Токены доступа действительны в течение часа (3600 секунд).
Если вы ранее реализовали ClientLogin, подход OAuth 2.0 аналогичен, но со следующими отличиями:
- Ваше приложение использует учетную запись службы Google для доступа к API.
- Вы передаете токен доступа OAuth 2.0 в HTTP-заголовке
Authorization
при вызове API.
Чтобы настроить свою учетную запись для использования OAuth 2.0 с любым API отелей, выполните следующие действия:
Каждый из этих шагов описан в следующих разделах.
Шаг 1. Создайте новый проект консоли Google Cloud.
Консоль Google Cloud используется для управления и просмотра данных о трафике, аутентификации и платежной информации для API Google, которые используются в ваших проектах.
В консоли Google Cloud проект представляет собой набор настроек, учетных данных и метаданных о приложении, над которым вы работаете, которое использует API-интерфейсы разработчиков Google и ресурсы Google Cloud.
Консоль Google Cloud также используется для создания учетных данных API, активации API, а также управления командой и платежной информацией, связанной с вашим проектом.
Чтобы создать новый проект консоли Google Cloud:
Войдите в свою учетную запись Gmail или Google.
Откройте консоль Google Cloud . Если это ваш первый проект, на главном экране появится кнопка СОЗДАТЬ ПРОЕКТ :
Нажмите кнопку СОЗДАТЬ ПРОЕКТ . Консоль Google Cloud отображает диалоговое окно «Новый проект» :
Введите понятное имя для вашего нового проекта в поле ввода «Имя проекта» . Под полем консоль Google Cloud генерирует для вас идентификатор проекта, гарантируя, что этот идентификатор уникален для всех проектов. Например, если вы введете «Мой новый проект», консоль Google Cloud присвоит идентификатор, например
my-new-project-266022
.Нажмите кнопку «Создать» , чтобы создать новый проект.
В меню навигации выберите API и службы > Панель мониторинга .
На следующем изображении показано меню навигации в левом верхнем углу консоли Google Cloud. Это отобразит вид панели мониторинга для вашего проекта:
Дополнительную информацию см. в разделе Создание проектов и управление ими .
Шаг 2. Создайте учетную запись службы и сгенерируйте ее учетные данные.
Учетные записи служб используются при межсерверном взаимодействии, например между веб-приложением и данными вашего отеля.
Чтобы создать и настроить учетную запись службы:
В главном представлении консоли Google API нажмите «Учетные данные» на панели навигации слева. Консоль Google Cloud отображает представление учетных данных .
В представлении «Учетные данные» отображаются идентификаторы клиентов и учетные данные для вашего проекта. Ваше приложение использует идентификатор клиента при запросе токена доступа OAuth 2.0. У новых проектов пока нет ни клиентов, ни учетных данных.
Нажмите ссылку «Учетные данные в API и службах» .
Нажмите кнопку «Создать учетные данные» и выберите « Ключ служебной учетной записи» из фильтра. Отобразится представление «Создать ключ учетной записи службы» .
В фильтре учетной записи службы выберите «Новая учетная запись службы» .
Введите имя учетной записи службы и идентификатор учетной записи службы.
Имя может быть любым, но идентификатор учетной записи должен быть уникальным во всех проектах. Консоль Google Cloud генерирует для вас уникальный идентификатор учетной записи на основе введенного вами имени.
Выберите JSON в качестве типа ключа. Требуется JSON .
Нажмите кнопку «Создать» . Консоль Google Cloud генерирует пару частных или открытых ключей для вашего проекта. Закрытый ключ сохраняется в папке по умолчанию, в которой ваш браузер сохраняет загрузки. Вам необходимо скачать файл формата
.JSON
.Вы используете закрытый ключ в своих скриптах или других приложениях, которые обращаются к вашему API.
Консоль Google Cloud отображает сообщение «Учетная запись службы создана» после завершения генерации ключей.
Нажмите кнопку ОК, понятно . Консоль Google Cloud возвращает вас к представлению учетных данных . Чтобы подтвердить сведения о своей учетной записи службы и просмотреть учетную запись службы, связанную с вашим проектом, нажмите « Управление учетными записями службы» в этом представлении.
Теперь с учетной записью службы связаны следующие учетные данные:
- Идентификатор клиента: уникальный идентификатор, который ваше приложение использует при запросе токена доступа OAuth 2.0.
- Адрес электронной почты: сгенерированный адрес электронной почты для учетной записи службы в форме " имя_аккаунта @ имя_проекта .google.com.iam.gserviceaccount.com".
- Отпечатки сертификата: идентификатор загруженного вами закрытого ключа.
Дополнительную информацию см. в разделе Использование OAuth 2.0 для межсерверных приложений .
Шаг 3. Предоставьте сервисному аккаунту доступ к данным вашего Hotel Center.
Последний шаг — предоставить новому сервисному аккаунту доступ к вашему Hotel Center . Учетная запись службы идентифицируется по сгенерированному адресу электронной почты, который вы создали на предыдущем шаге. Вы предоставляете доступ к этой учетной записи, используя настройки общего доступа Hotel Center .
Если у вас нет надлежащего доступа для добавления пользователей в учетную запись, свяжитесь с командой Google Hotels, используя форму обратной связи , и попросите установить право собственности на вашу учетную запись. Вы можете запросить отправку владельцу одного или нескольких электронных писем. Дополнительную информацию о доступе к Hotel Center см. в разделе Link Hotel Center и Google Ads .
Чтобы предоставить сервисному аккаунту доступ к данным вашего Hotel Center:
В новом окне браузера откройте Hotel Center .
На баннере Hotel Center by Google щелкните значок добавления пользователя, чтобы открыть диалоговое окно общего доступа.
В поле «Добавить больше людей» введите адрес электронной почты учетной записи службы, которую вы хотите добавить в свой Hotel Center .
Оставьте выбранной опцию «Уведомить людей» .
Выберите «Управление» в фильтре.
Нажмите кнопку «Пригласить» .
После того как вы добавите пользователей в свой Hotel Center , вашему сервисному аккаунту будет предоставлен доступ к API в течение примерно 24 часов.
После того как Google уведомит вас о том, что доступ к API включен для вашей учетной записи службы, вы можете начать получать доступ к API с помощью OAuth 2.0.
Как использовать OAuth 2.0
Чтобы получить доступ к API, ваше приложение должно идентифицировать себя в Google с помощью сгенерированного адресом электронной почты и секретным ключом учетной записи службы. Механизм аутентификации Google заменяет этот ключ на токен доступа OAuth 2.0, который вы передаете в заголовке Authorization
в вызовах API вашего приложения.
См. раздел Подготовка к делегированному вызову API .
Области применения
Ниже приведены SCOPES
API для отелей:
API-интерфейс Travel Partner: "https://www.googleapis.com/auth/travelpartner"
API цен туристических партнеров: "https://travelpartnerprices.googleapis.com"
API каналов цен: "https://www.googleapis.com/auth/travel-partner-price-upload"
При создании учетных данных необходимо указать учетную запись службы. См. раздел Создание учетной записи службы и создание ее учетных данных .
При разработке приложения обязательно следуйте рекомендациям по аутентификации приложения с помощью ключей API. Узнать больше .
Пример
from google.oauth2 import service_account
from google.auth.transport.requests import Request
# You can use a single or multiple scopes
SCOPES =
['https://www.googleapis.com/auth/travel-partner-price-upload','https://travelpartnerprices.googleapis.com','https://www.googleapis.com/auth/travelpartner']
SERVICE_ACCOUNT_FILE = 'service_account_key_file.json'
cred = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=SCOPES)
cred.refresh(Request())
headers = {}
cred.apply(headers)
API туристического партнера
API Travel Partner позволяет партнерам по размещению получать информацию Hotel Center и изменять данные Hotel Center для управления большими или сложными учетными записями.
Следуйте инструкциям по настройке OAUTH 2.0 , чтобы получить авторизацию для вашего Travel Partner API.
Когда вы создаете новый проект для Travel Partners API, вам необходимо включить доступ к новому проекту консоли Google Cloud.
Выполните следующие действия, чтобы включить доступ к API Travel Partners:
Перейдите в панель мониторинга вашего проекта.
Нажмите «Включить API и службы» . Откроется страница приветствия библиотеки API.
В поле поиска начните вводить «API туристического партнера», а затем консоль отобразит список API, соответствующих введенному вами слову.
Щелкните API, соответствующий таблице. Консоль Google Cloud отображает описание этого API.
Нажмите кнопку «Включить API» , чтобы включить этот API для вашего проекта.
Дополнительную информацию см. в разделе Включение и отключение служб .
API Travel Partner теперь включен для нового проекта вашего аккаунта Google.
Область действия API Travel Partner: "https://www.googleapis.com/auth/travelpartner"
Конечная точка для Travel Partner API: "https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"
API цен партнеров по путешествиям
API цен партнеров по путешествиям позволяет партнерам по размещению отправлять цены на недвижимость в Google. Это также называется ценой продолжительности пребывания (LoS) .
Следуйте инструкциям по настройке OAUTH 2.0 , чтобы получить авторизацию для вашего API цен партнеров по путешествиям.
Когда вы создаете новый проект для API цен Travel Partners, вам необходимо включить доступ к новому проекту консоли Google Cloud, что аналогично инструкциям, представленным в API Travel Partners.
Обратитесь к инструкциям, приведенным в API туристических партнеров, и замените все экземпляры «API туристических партнеров» на «API цен туристических партнеров», чтобы активировать ваш проект.
Область действия API цен туристических партнеров: "https://travelpartnerprices.googleapis.com"
Путь загрузки для API цен партнеров по путешествиям: "/travel/lodging/uploads/accounts/<account_id>/property_data"
API ценовых каналов
API Price Feeds позволяет партнерам по размещению предоставлять индивидуальные данные о ценах для каждого отеля. Партнеры Google по размещению могут использовать OAuth2.0 для аутентификации и авторизации при загрузке цен в Google. Следуйте инструкциям по настройке OAUTH 2.0 , чтобы получить авторизацию для API ценовых каналов.
Что следует помнить
Обратите внимание на важные различия в инструкциях по авторизации для API ценовых каналов.
Партнерам следует создать новый проект OAuth2.0 «Фиды цен» в консоли Google Cloud, используя те же инструкции, что и при настройке OAuth 2.0 .
Включение API ценовых каналов в консоли Google Cloud НЕ является обязательным и его можно игнорировать. Вам понадобится только одна учетная запись и ключ службы, а затем использовать ту же учетную запись и ключ службы, чтобы предоставить проекту Price Feeds доступ к вашим данным Hotel Center. Выполните оставшиеся шаги, упомянутые в настройке OAuth2.0, чтобы завершить настройку API.
Получите токен доступа OAuth2.0 для каналов цен
Следующий шаг — получить токен доступа OAuth2.0 с областью загрузки цен на жилье, используя файл ключей сервисного аккаунта. Вы можете авторизовать запросы к своему проекту «Фиды цен», следуя инструкциям, приведенным в разделе «Подготовка к делегированному вызову API» , а затем извлечь токен доступа из полученных учетных данных и установить его в HTTP-заголовке "Authorization"
.
Область загрузки цен на жилье: "https://www.googleapis.com/auth/travel-partner-price-upload"
Загрузить цены
После получения токена доступа партнеры могут загрузить свой фид цен аналогично использованию статического IP-адреса для аутентификации и авторизации со следующей модификацией:
- Установите токен доступа в HTTP-заголовке
"Authorization"
curl -X POST -H "Authorization: Bearer <access token>"
www.google.com/travel/lodging/uploads/accounts/<account_id>/ota/hotel_rate_amount_notif --data-binary @<price_feed_file_location>
Тестовая настройка OAuth2.0 для API ценовых каналов
Вы можете протестировать настройку OAuth2.0, загрузив пустой файл или данные о реальных ценах по любому из путей загрузки. Используйте таблицу, чтобы проверить статус ответа HTTP.
Статус HTTP-ответа | Сообщение |
---|---|
200 | Successful (OK) |
401 | Service account creation or access token fetch was not successful |
403 | Service account access wasn't granted to the Hotel Center account or both the service account key and access token has expired |
Поиск неисправностей
Возникли проблемы? Быстрая проверка следующих элементов может решить проблему.
- Вы создали проект в консоли Google Cloud ?
- Вы включили эту службу в своем проекте?
- Загрузили ли вы файл
.JSON
— закрытый ключ после нажатия кнопки «Создать идентификатор клиента» и выбора учетной записи службы ? - Получили ли вы адрес электронной почты с идентификатором клиента сервисного аккаунта в форме:
nnnnnnn@app_name.google.com.iam.gserviceaccount.com
? - Вы предоставили общий доступ к своему аккаунту Hotel Ads Center сервисному аккаунту, нажав кнопку «Поделиться этим аккаунтом» ?
- Отправили ли вы адрес электронной почты сервисного аккаунта и идентификатор партнера своему техническому менеджеру по работе с клиентами (TAM)?
- Передаются ли ваши вызовы API недавно полученного токена в заголовке
Authorization
? - Вашему токену больше 1 часа?
В следующей таблице перечислены некоторые распространенные ошибки и возможные решения:
Ошибка | Описание |
---|---|
Invalid credentials | Это может означать несколько вещей. Если вы столкнулись с этой ошибкой, проверьте следующее:
|
Not found | Ваша конечная точка, скорее всего, неправильно сформирована. Убедитесь, что вы отправляете запрос GET и что URL-адрес запроса действителен (он соответствует синтаксису API, к которому вы пытаетесь получить доступ). |
Invalid string value | Одна или несколько частей конечной точки содержат недопустимый синтаксис. Например, вы могли неправильно написать часть пути. Убедитесь, что вы использовали правильные символы подчеркивания, заглавные буквы и формулировки на протяжении всего пути. |
Unsupported output format | Эта ошибка чаще всего возникает при использовании API отчетов. Вы должны указать "alt=csv" в URL-адресе вашего запроса GET . API отчетов не поддерживает JSON. |
AccessTokenRefreshError/Invalid grant | При запуске приложения эта ошибка может быть вызвана следующими причинами:
|
HotelAdsAPIConnection object has no attribute credentials | При запуске приложения указан неверный путь к файлу .JSON . |
Invalid scope | При запуске приложения область вашего API должна быть одной из следующих:
|
Forbidden | Используемый вами идентификатор учетной записи не имеет разрешения на доступ. Если вы являетесь владельцем дополнительной учетной записи, возможно, вы не сможете получить доступ к идентификатору родительской или корневой учетной записи. |
В этой документации представлены пошаговые инструкции по настройке OAuth2.0 в вашем приложении при доступе к API отеля, таким как API Travel Partner и API ценовых каналов. См. раздел Использование OAuth 2.0 для доступа к API Google для авторизации вашего приложения.
Настройка OAuth 2.0
OAuth 2.0 требует, чтобы вы идентифицировали себя, используя учетную запись службы, связанную с вашей учетной записью Google. Учетная запись службы отправляет ваш закрытый ключ в обмен на токен доступа OAuth 2.0. Затем вы можете использовать этот токен в вызовах API-интерфейсов отеля для получения данных только для чтения , таких как данные о ценах, отеле и диагностических отчетах о фиде цен на ваш отель.
Токены доступа действительны в течение часа (3600 секунд).
Если вы ранее реализовали ClientLogin, подход OAuth 2.0 аналогичен, но со следующими отличиями:
- Ваше приложение использует учетную запись службы Google для доступа к API.
- Вы передаете токен доступа OAuth 2.0 в HTTP-заголовке
Authorization
при вызове API.
Чтобы настроить свою учетную запись для использования OAuth 2.0 с любым API отелей, выполните следующие действия:
Каждый из этих шагов описан в следующих разделах.
Шаг 1. Создайте новый проект консоли Google Cloud.
Консоль Google Cloud используется для управления и просмотра данных о трафике, аутентификации и платежной информации для API Google, которые используются в ваших проектах.
В Cloud Console Google проект представляет собой набор настроек, учетных данных и метаданных о приложении, над которым вы работаете, в котором используются API Google Developer и Google Cloud Resources.
Cloud Console Google также используется для создания учетных данных API, активации API и управления командой и платежей, связанной с вашим проектом.
Чтобы создать новый проект Google Cloud Console:
Войдите в свою учетную запись Gmail или Google.
Откройте Google Cloud Console . Если это ваш первый проект, в основном представлении отображается кнопка «Создание проекта» :
Нажмите кнопку «Создать проект» . Google Cloud Console отображает новый диалог проекта :
Введите дружеское имя для вашего нового проекта в поле «Имя проекта» . Под полем, Cloud Console Google генерирует для вас идентификатор проекта, гарантируя, что идентификатор уникален для всех проектов. Например, если вы введете «мой новый проект», Google Cloud Console назначает идентификатор, например,
my-new-project-266022
.Нажмите кнопку «Создать» , чтобы создать свой новый проект.
Используйте меню навигации, чтобы выбрать API и службы> Панель панели .
На следующем изображении показано меню навигации в левом верхнем левом консоли Google Cloud. Это отображает представление на приборную панель для вашего проекта:
Для получения дополнительной информации обратитесь к созданию и управлению проектами .
Шаг 2: Создайте учетную запись службы и генерируйте его учетные данные
Учетные записи услуг используются взаимодействиями сервера к серверу, таким как между веб-приложением и данными вашего отеля.
Для создания и настройки учетной записи службы:
В основном представлении консоли Google API нажмите учетные данные в левой навигации. Google Cloud Console отображает представление учетных данных .
В просмотре учетных данных отображаются идентификаторы клиентов и учетные данные для вашего проекта. Ваше приложение использует идентификатор клиента при запросе токена доступа OAuth 2.0. У новых проектов пока нет клиентов или учетных данных.
Нажмите на ссылку на учетные данные в API и службах .
Нажмите кнопку «Создать учетные данные» и выберите ключ учетной записи службы в фильтре. Отображается представление ключа учетной записи Create Service .
В фильтре учетной записи службы выберите New Service Account .
Введите имя учетной записи службы и идентификатор учетной записи службы.
Имя может быть чем угодно, но идентификатор учетной записи должен быть уникальным для всех проектов. Google Cloud Console генерирует для вас уникальный идентификатор учетной записи, основанный на введенном вами имени.
Выберите JSON для типа ключа. JSON требуется .
Нажмите кнопку «Создать» . Google Cloud Console генерирует частную или общедоступную пару ключей для вашего проекта. Частный ключ сохраняется в месте по умолчанию, которое хранит ваш браузер. Вы должны загрузить файл формата
.JSON
.Вы используете закрытый ключ в своих сценариях или других приложениях, которые получают доступ к вашему API.
Google Cloud Console отображает сообщение «Создана сервисная учетная запись», когда он заканчивает генерирование ключей.
Нажмите кнопку «ОК» . Google Cloud Console возвращает вас к представлению учетных данных . Чтобы подтвердить подробности о вашей учетной записи службы и увидеть учетную запись службы, связанную с вашим проектом, нажмите « Управление учетными записями служб» в этом представлении.
Сервисная учетная запись теперь имеет следующие учетные данные, связанные с ней:
- Идентификатор клиента: уникальный идентификатор, который использует ваше приложение при запросе токена доступа OAuth 2.0.
- Адрес электронной почты: сгенерированный адрес электронной почты для учетной записи службы, в форме " Account_Name @ project_name .google.com.iam.gserviceaccount.com".
- Сертификат отпечатков пальцев: идентификатор частного ключа, который вы скачали.
Для получения дополнительной информации обратитесь к использованию OAuth 2.0 для сервера для приложений сервера .
Шаг 3: предоставьте услугу доступ к данным вашего гостиничного центра
Последним шагом является предоставление новой учетной записи обслуживания с доступом к вашему гостиничному центру . Сервисная учетная запись идентифицируется сгенерированным адресом электронной почты, который вы создали на предыдущем шаге. Вы предоставляете доступ к этой учетной записи, используя настройки совместного использования в отеле .
Если у вас нет надлежащего доступа, чтобы добавить пользователей в учетную запись, свяжитесь с командой Google Hotels, используя форму Contact Us и запросите, чтобы настроить владение вашей учетной записью. Вы можете запросить одно или несколько электронных писем, чтобы быть сделанным владельцу. Для получения дополнительной информации о доступе к гостиничному центру обратитесь к Link Hotel Center и Google Ads .
Чтобы предоставить сервисную учетную запись доступ к данным вашего гостиничного центра:
В новом окне браузера откройте гостиничный центр .
В центре отеля от Google Banner нажмите значок «Добавить пользователь», чтобы открыть диалоговое окно обмена.
В поле «Добавить больше людей» введите адрес электронной почты учетной записи услуги, которую вы хотите добавить в свой гостиничный центр .
Держите вариант уведомления людей .
Выберите Управление из фильтра.
Нажмите кнопку «Пригласить» .
После того, как вы добавите пользователей в свой гостиничный центр , ваша учетная запись обслуживания должна быть включена для API -адреса в течение примерно 24 часов.
После того, как Google уведомляет вас о том, что доступ к API включен для вашей учетной записи службы, вы можете начать доступ к API с помощью OAuth 2.0.
Как использовать OAuth 2.0
Чтобы получить доступ к API, ваше приложение должно идентифицировать себя в Google с помощью сгенерированного адреса электронной почты Сервиса и закрытого ключа. Механизм аутентификации Google обменивает этот ключ на токен доступа OAuth 2.0, который вы передаете в заголовке Authorization
в вызовах API вашего приложения.
Обратитесь к подготовке, чтобы сделать делегированный вызов API .
Прицелы
Ниже приведены SCOPES
для отелей API:
Партнер по путешествиям API: "https://www.googleapis.com/auth/travelpartner"
Цены на туристический партнер API: "https://travelpartnerprices.googleapis.com"
Цена подает API: "https://www.googleapis.com/auth/travel-partner-price-upload"
Вы должны указать учетную запись службы при создании учетных данных. Обратитесь к созданию учетной записи службы и генерируйте его учетные данные .
При разработке вашего приложения обязательно следите за лучшими практиками для аутентификации вашего приложения с помощью клавиш API. Узнать больше .
Пример
from google.oauth2 import service_account
from google.auth.transport.requests import Request
# You can use a single or multiple scopes
SCOPES =
['https://www.googleapis.com/auth/travel-partner-price-upload','https://travelpartnerprices.googleapis.com','https://www.googleapis.com/auth/travelpartner']
SERVICE_ACCOUNT_FILE = 'service_account_key_file.json'
cred = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=SCOPES)
cred.refresh(Request())
headers = {}
cred.apply(headers)
Туристический партнер API
API API Travel Partner позволяет партнерам по жилью для извлечения информации о гостиничном центре и изменить данные гостиничного центра для управления крупными или сложными учетными записями.
Следуйте инструкциям OAUTH 2.0 , чтобы получить разрешение для вашего API партнера по путешествиям.
Когда вы создаете новый проект для API Travel Partners, вам необходимо получить доступ к вашему новому проекту Google Cloud Console.
Следуйте шагам, чтобы обеспечить доступ к API Partners Travel Partners:
Перейдите на приборную панель вашего проекта.
Нажмите «Включить API и сервисы» . Это отображает страницу приветствия библиотеки API.
В поле поиска начните вводить «API -партнер путешествий», а затем консоль отображает список API, которые соответствуют тому, что вы вводите.
Нажмите на API, который соответствует таблице. Google Cloud Console отображает описание об этом API.
Нажмите кнопку «Включить API» , чтобы включить этот API для вашего проекта.
Для получения дополнительной информации см. Включающие и отключающие услуги .
API API Travel Partner теперь включен для нового проекта вашей учетной записи Google.
Охват API партнера по путешествиям: "https://www.googleapis.com/auth/travelpartner"
Конечная точка для партнера по путешествиям API: "https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"
Цены на туристический партнер API
API Partner Partner API позволяет партнерам по продаже отправлять цены на недвижимость в Google. Это также называется продолжительностью пребывания (LOS) ценообразования .
Следуйте инструкциям по настройке OAuth 2.0 , чтобы получить авторизацию для API цен на поездки партнеров.
Когда вы создаете новый проект для API Partners Partners Partners, вам необходимо обеспечить доступ к вашему новому проекту Cloud Console Google, который аналогичен инструкциям, представленным в API Travel Partner.
Обратитесь к шагам, представленным в API партнера по путешествиям и замените все случаи «API Travel Partner API» с «API цены на туристический партнер», чтобы обеспечить ваш проект.
Охват API API цены партнера туристического партнера: "https://travelpartnerprices.googleapis.com"
Путь загрузки для API цены на туристические партнеры: "/travel/lodging/uploads/accounts/<account_id>/property_data"
Цена подает API
API Price Feeds позволяет партнерам по жилью предоставлять индивидуальные данные о ценах для каждого отеля. Партнеры по жилью Google могут использовать OAuth2.0 для аутентификации и авторизации себя при загрузке цен в Google. Следуйте инструкциям OAUTH 2.0 , чтобы получить разрешение на API для подачи цен.
Очки запомнить
Обратите внимание на важные различия в инструкциях по авторизации для Pry Feeds API.
Партнеры должны создать новый проект по цене OAuth2.0 в Google Cloud Console, используя те же инструкции, что и в настройке OAuth 2.0 .
Включение API -интерфейса в области PREED в Cloud Console Google не требуется и может быть проигнорировано. Вам нужна только одна учетная запись сервиса и ключ, а затем используйте ту же учетную запись обслуживания и ключ для предоставления цен на проект Project Project к данным вашего гостиничного центра. Следуйте оставшимся шагам, упомянутым в настройке OAuth2.0, чтобы завершить настройку вашего API.
Получить токен доступа к oauth2.0 для получения цен на цены
Следующим шагом является получение токена доступа OAUTH2.0 с применением загрузки цены на жилье, используя файл ключа учетной записи службы. Вы можете авторизовать запросы в свой проект Feeds Feeds, следуя инструкциям, представленным при подготовке к делегированному вызову API , а затем извлечь токен доступа из приобретенных учетных данных и установить его в заголовке HTTP "Authorization"
.
Сфера загрузки цены на жилье: "https://www.googleapis.com/auth/travel-partner-price-upload"
Загрузить цены
После получения токена доступа партнеры могут загрузить свой канал цены, аналогичный использованию статической IP для аутентификации и авторизации со следующей модификацией:
- Установите токен доступа в заголовок
"Authorization"
HTTP
curl -X POST -H "Authorization: Bearer <access token>"
www.google.com/travel/lodging/uploads/accounts/<account_id>/ota/hotel_rate_amount_notif --data-binary @<price_feed_file_location>
Test OAuth2.0 Setup для получения цен на API.
Вы можете проверить свою настройку OAuth2.0, загрузив пустой файл или с реальными данными цен на любой из путей загрузки. Используйте таблицу, чтобы проверить свой статус ответа HTTP.
Статус ответа http | Сообщение |
---|---|
200 | Successful (OK) |
401 | Service account creation or access token fetch was not successful |
403 | Service account access wasn't granted to the Hotel Center account or both the service account key and access token has expired |
Поиск неисправностей
Столкнуться с проблемами? Выполнение быстрого проверки следующих элементов может решить проблему.
- Вы создали проект в консоли Google Cloud ?
- Вы включили сервис в своем проекте?
- Вы скачали файл
.JSON
- закрытый ключ после нажатия Create Client ID и выбора учетной записи службы ? - Вы получили идентификатор клиента сервисной учетной записи, идентификационный адрес клиента формы:
nnnnnnn@app_name.google.com.iam.gserviceaccount.com
? - Вы поделились своей учетной записью в центре рекламы отеля с учетной записью сервисной учетной записи, нажав кнопку «Поделиться этой учетной записью» ?
- Вы отправили адрес электронной почты Сервисной учетной записи и ваш идентификатор партнера своему менеджеру по техническим счетам (TAM)?
- Ваши вызовы API передают недавно поддержанный токен в заголовке
Authorization
? - Ваш жетон более 1 часа?
В следующей таблице перечислены некоторые общие ошибки и возможные разрешения:
Ошибка | Описание |
---|---|
Invalid credentials | Это может означать ряд вещей. Если вы столкнетесь с этой ошибкой, проверьте это:
|
Not found | Ваша конечная точка, скорее всего, уменен. Убедитесь, что вы отправляете запрос GET , и что URL -адрес запроса действителен (он соответствует синтаксису API, к которому вы пытаетесь получить доступ). |
Invalid string value | Одна или несколько частей конечной точки содержит неверный синтаксис. Например, вы, возможно, сделали неправильную часть пути. Убедитесь, что вы использовали правильные подчеркивания, заглавную капитализацию и формулировку во всем вашем пути. |
Unsupported output format | Эта ошибка чаще всего возникает при использовании API отчетов. Вы должны указать "alt=csv" в URL вашего запроса GET . Отчеты API не поддерживают JSON. |
AccessTokenRefreshError/Invalid grant | При запуске вашего приложения эта ошибка может быть вызвана из -за следующего:
|
HotelAdsAPIConnection object has no attribute credentials | При запуске приложения путь к вашему файлу .JSON неверен. |
Invalid scope | При запуске приложения ваш API -объем должен быть одним из следующих действий:
|
Forbidden | Идентификатор учетной записи, который вы используете, - это тот, который у вас нет разрешения на доступ. Если вы являетесь владельцем субъекта, вы не сможете получить доступ к идентификатору учетной записи родителей или корневой учетной записи. |