В этом руководстве описано, как создавать и редактировать адреса. С помощью My Business Business Information API можно выполнить следующие действия:
- Создать адрес
- Удалить адрес
- Получить данные об адресе по названию ресурса
- Получить список всех адресов для аккаунта
- Изменить данные полей
Адреса можно использовать в Google Рекламе, но для показа в Поиске и Картах их необходимо подтвердить. Данные об адресах представлены в виде коллекции accounts.locations.
Подготовка
Прежде чем начинать работу с My Business Business Information API, необходимо зарегистрировать свое приложение и получить учетные данные OAuth 2.0. Подробную информацию о начале работы с My Business Business Information API можно найти в руководстве по базовой настройке.
Как создать адрес
С помощью My Business Business Information API вы можете создать адрес для компании, используя метод accounts.locations.create.
Чтобы создать адрес, используйте следующий код:
POST https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?requestId=requestId&validateOnly=True|False { "storeCode": "GOOG-SYD", "languageCode": "en-AU", "title": "Google Sydney", "phoneNumbers": { "primaryPhone": "02 9374 4000" } "storefrontAddress": { "addressLines": [ "Level 5", "48 Pirrama Road" ], "locality": "Pyrmont", "postalCode": "2009", "administrativeArea": "NSW", "regionCode": "AU" }, "websiteUri": "https://www.google.com.au/", "regularHours": { "periods": [ { "openDay": "MONDAY", "closeDay": "MONDAY", "openTime": "09:00", "closeTime": "17:00" }, { "openDay": "TUESDAY", "closeDay": "TUESDAY", "openTime": "09:00", "closeTime": "17:00" }, { "openDay": "WEDNESDAY", "closeDay": "WEDNESDAY", "openTime": "09:00", "closeTime": "17:00" }, { "openDay": "THURSDAY", "closeDay": "THURSDAY", "openTime": "09:00", "closeTime": "17:00" }, { "openDay": "FRIDAY", "closeDay": "FRIDAY", "openTime": "09:00", "closeTime": "17:00" } ] }, "categories": { "primaryCategory": { "name": "gcid:software_company" } } }
Как удалить адрес
С помощью My Business Business Information API вы можете удалить адрес, используя метод locations.delete.
Чтобы удалить адрес, используйте следующий код:
DELETE https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}
Как получить данные об адресе по названию
Вы можете отфильтровать данные по названию организации, используя метод locations.get. Это удобно, когда с аккаунтом связано много компаний.
Чтобы получить данные об адресе по названию, необходимо указать readMask для извлечения конкретных полей: :
GET https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?readMask={commaSeparatedFieldsToRetrieve}
Как получить данные о версии Google Карт
Чтобы получить данные о версии Google Карт для адреса, добавьте googleUpdated
в URL запроса:
GET https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}:googleUpdated?readMask={commaSeparatedFieldsToRetrieve}
Если результатов нет, вернется код статуса HTTP 404 NOT FOUND
. Подробнее об управлении изменениями, внесенными Google…
Как получить список адресов
Чтобы получить список всех адресов, связанных с аккаунтом, воспользуйтесь API accounts.locations.list.
Если вам нужны адреса, которые принадлежат выполнившему аутентификацию пользователю или непосредственно управляются им, введите следующий запрос:
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}
Если нужно включить адреса, которые принадлежат группе или управляются ей, в URL запроса используйте вместо идентификатора аккаунта подстановочный знак '-'
:
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/-/locations?readMask={commaSeparatedFieldsToRetrieve}
Как отфильтровать результаты
К списку адресов, полученному с помощью метода accounts.locations.list, можно применить фильтры. Для этого добавьте выражение фильтра к основному URL. Пример:
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter={FIELD_NAME}=%22{YOUR_QUERY}%22
Основной синтаксис запросов
Для ограничения используется следующий синтаксис: <field><operator><value>
. В нем применяется оператор РАВНО (=) или СОДЕРЖИТ (:). Операторы одинаково работают для всех полей, кроме locationName
(см. в таблице ниже).
Кавычки кодируются как "%22", а пробелы заменяются знаками плюса (+).
Если не указано иное, при сравнении токенов регистр не учитывается. Например, по запросу "4 drive" можно получить результат "4, Privet Drive".
Как объединить несколько полей в запросе для фильтрации
API поддерживает оператор AND (И) для объединения ограничений. При этом оператор OR (ИЛИ) действует только тогда, когда ограничения распространяются на одно и то же поле. Пример неподдерживаемого запроса: locationName=A
OR labels=B
.
Пример
Ниже приведен пример выражения для фильтрации, при использовании которого выводятся все адреса с названием Pepé Le Pew. При этом применяются категории french_restaurant и european_restaurant, а также ярлык newly open.
locationName=%22Pepé+Le+Pew%22+AND+ (categories=%22french_restaurant%22+OR+ categories=%22european_restaurant%22)+AND+ labels=%22newly+open%22
Поиск по расстоянию или аккаунту
Ниже показано, как выполнить поиск адресов в определенном радиусе от географического местоположения.
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint({latitude}, {longitude}))<{distance}
Фильтр для адресов, расположенных не более чем в 1000 миль от Боулдера, штат Колорадо, США:
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&filter=distance(latlng, geopoint(40.01, -105.27))<1000.0
Список полей, которые поддерживают фильтрацию
Ниже приведен полный список полей, к которым можно применять фильтры.
Поля | Описание и пример |
---|---|
Поля со строковым соответствием | |
title |
Официальное название компании.
|
categories |
Сочетание основной и дополнительных категорий. Учтите, что "gcid:" не нужно указывать. Если категорий несколько, этот фильтр выдает соответствие как минимум при одном совпадении.
|
phone_numbers.primary_phone |
Основной номер телефона в формате E.164 (например, +441234567890).
|
storefront_address.region_code |
Идентификатор CLDR для страны или региона, где находится адрес.
|
storefront_address.administrative_area |
Высшая административная единица для почтовых адресов в стране или регионе.
|
storefront_address.locality |
Город в адресе.
|
storefront_address.postal_code |
Почтовый индекс.
|
metadata.place_id |
Если адрес подтвержден и показывается в Google Картах, поле соответствует идентификатору места для адреса.
|
openInfo.status |
Указывает, работает ли компания по определенному адресу (
|
labels |
Набор строк свободного формата, в которые можно добавить теги для компании. В отличие от всех остальных полей, здесь значение должно в точности соответствовать ярлыку, включая регистр. Частичные запросы не поддерживаются. Например, ярлык XX YY не считается соответствующим запросу XX или xx yy.
|
storeCode |
Внешний идентификатор адреса. Должен быть уникальным в рамках аккаунта.
|
Функции | |
distance |
Позволяет фильтровать адреса по расстоянию от определенной географической точки.
|
Сортировка по полю запроса
Вы можете сортировать результаты по названию компании или коду филиала (по возрастанию или убыванию). Разные критерии сортировки в строке orderBy
можно перечислить через запятую. Пример:
GET https://mybusinessbusinessinformation.googleapis.com/v1/accounts/{accountId}/locations?readMask={commaSeparatedFieldsToRetrieve}&orderBy=locationName,storeCode
Как изменить данные об адресе
Чтобы изменить данные в полях с помощью My Business Business Information API, воспользуйтесь методом locations.patch.
Используйте приведенный ниже код.
Добавьте поля и новые значения. В качестве значения fieldMask
перечислите через запятую поля, которые нужно обновить.
PATCH https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?languageCode=language&validateOnly=True|False&updateMask=title { "title": "Google Shoes" }