Внимание! Вышла версия API 4.7. Подробная информация приведена в истории изменений. Публикации, связанные с COVID-19, по-прежнему временно разрешены для торговых сетей.

Управление уведомлениями в режиме реального времени

В Google My Business API уведомления публикуются в сервисе Cloud Pub/Sub. После того как вы настроите аккаунт Cloud Pub/Sub и создадите тему, вы сможете выполнять следующие операции с уведомлениями:

Поддерживаются уведомления о новых и обновленных отзывах, вопросах и ответах, загрузках мультимедийных материалов, внесенных сотрудниками Google изменениях в отзывы, изменениях состояния адресов и т. д. В объекте NotificationType содержатся список и описания доступных типов уведомлений.

Подготовка

Чтобы начать использовать Google My Business API, зарегистрируйте свое приложение и получите учетные данные OAuth 2.0. Подробнее о начале работы с API читайте в руководстве по базовой настройке.

Настройка Cloud Pub/Sub

Чтобы настроить уведомления Google My Business API с использованием Cloud Pub/Sub, выполните следующие действия:

  1. Выполните инструкции из руководства Cloud Pub/Sub по настройке приложения.
  2. Создайте тему в своем проекте Cloud Pub/Sub и запишите ее название.
  3. Предоставьте для mybusiness-api-pubsub@system.gserviceaccount.com разрешение как минимум pubsub.topics.publish.
  4. Настройте push- или pull-уведомления согласно инструкциям из этого руководства.
  5. Чтобы получать уведомления, вызовите конечную точку accounts.updateNotifications в Google My Business API. В вызове укажите название темы, созданной вами в проекте Cloud Pub/Sub, чтобы связать с этой темой свой аккаунт сервиса "Google Мой бизнес".
  6. (Необязательно.) Выполните инструкции из пункта 5 для всех аккаунтов сервиса "Google Мой бизнес", для которых вы хотите получать уведомления.

Получение настроек уведомлений

Конечная точка accounts.getNotifications возвращает текущие настройки уведомлений Cloud Pub/Sub для аккаунта. В следующей таблице показано, как вызвать эту конечную точку с помощью HTTP и Java:

HTTP
GET
https://mybusiness.googleapis.com/v4/accounts/{accountId}/notifications
Java

Следующая функция получает информацию об уведомлениях для аккаунта с помощью метода Mybusiness.Accounts.getNotifications.

/**
 * Demonstrates getting notification data.
 * @param name The name (account/`account_id`/notifications) for the notification to retrieve.
 * @return response The notification data.
 */
private static GetNotifications getNotifications(String name) throws Exception {
  Mybusiness.Accounts.getNotifications sub =

mybusiness.accounts().getNotifications(name);
  GetNotifications response = sub.execute();

  return response;
}

Изменение настроек уведомлений

Конечная точка accounts.updateNotifications обновляет настройки уведомлений Cloud Pub/Sub, связанные с аккаунтом. В следующей таблице показано, как вызвать эту конечную точку с помощью HTTP и Java:

HTTP
PUT
https://mybusiness.googleapis.com/v4/accounts/{accountId}/notifications

{
  name: your/pubsub/topicName
}
Java

В следующей функции используется метод Mybusiness.Accounts.Locations.Reviews.Get:

/**
 * Demonstrates getting a review by name.
 * @param reviewName The name (resource path) of the review to retrieve.
 * @return Account The requested review.
 */
private static Review getReview(String reviewName) throws Exception {
Mybusiness.Accounts.Locations.Reviews.Get review =

mybusiness.accounts().locations().reviews().get(reviewName);
  Review response = review.execute();

  return response;
}

Удаление настроек уведомлений

Конечная точка accounts.deleteNotifications удаляет настройки уведомлений Cloud Pub/Sub из аккаунта. В следующей таблице показано, как вызвать эту конечную точку с помощью HTTP и Java:

HTTP
DELETE
https://mybusiness.googleapis.com/v4/accounts/{accountId}/notifications
Java

В следующей функции используется метод Mybusiness.Accounts.DeleteNotifications:

/**
 * Demonstrates deleting the Google Cloud Pub/Sub settings.
 * @param notificationName The name (account/`account_id`/notifications) for the notification settings to delete.
 * @return The deleted notification setting.
 */
private static DeleteNotifications deleteNotifications(String notificationName) throws Exception {
  Mybusiness.Accounts.DeleteNotifications toDelete =

mybusiness.accounts().deleteNotifications(notificationName);
  DeleteNotification response = toDelete.execute();

  return response;
}