На этой странице объясняется, как использовать API событий Google Workspace для создания подписки на ресурс Google Workspace. Подписка на Google Workspace позволяет вашему приложению получать информацию о событиях Google Workspace , которые представляют собой изменения в ресурсе Google Workspace. Чтобы узнать, какие ресурсы и типы событий поддерживает API событий Google Workspace, см. обзор API событий Google Workspace .
На этой странице описаны следующие шаги для создания подписки на Google Workspace:
- Настройте свою среду.
- Создайте тему Google Cloud Pub/Sub и подпишитесь на неё. Используйте этот документ в качестве конечной точки для получения событий Google Workspace.
- Вызовите метод `
createAPI событий Google Workspace для ресурсаSubscription. - Проверьте свою подписку на Google Workspace, чтобы убедиться, что ваша тема Pub/Sub получает события, на которые вы подписаны.
- При желании можно настроить способ отправки событий на конечную точку вашего приложения, чтобы приложение могло обработать событие и, при необходимости, предпринять соответствующие действия.
Предварительные требования
Apps Script
- Чтобы использовать команды Google Cloud CLI, описанные в этом руководстве:
- Установите Google Cloud CLI .
- Для инициализации интерфейса командной строки
gcloudвыполните следующий код:
gcloud init
- Проект на Apps Script:
- Используйте свой проект Google Cloud вместо проекта, автоматически создаваемого Apps Script по умолчанию.
- Для всех областей действия (scopes), которые вы добавили для настройки экрана согласия OAuth, необходимо также добавить эти области в файл
appsscript.jsonв вашем проекте Apps Script. Например, если вы указали область действияchat.messages, добавьте следующее: - Включите расширенную службу «
Google Workspace Events.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
- Проект Google Cloud с включенной функцией выставления счетов. Для подписки на чат необходимо также включить API чата в вашем проекте Cloud и настроить поля «Имя приложения» , «URL-адрес аватара» и «Описание» . Подробнее см. в разделе «Создание приложения Google Chat» .
- Для каждого типа событий в подписке требуется аутентификация и соответствующая область авторизации :
- Как правило, требуется аутентификация пользователя с помощью экрана согласия OAuth, настроенного для приложения. При настройке экрана согласия необходимо указать область действия для поддержки каждого типа событий в рамках подписки. Чтобы настроить экран согласия и определить необходимые области действия, см. раздел «Выбор областей действия» .
- Для подписки на событие чата в качестве приложения чата требуется аутентификация приложения с одноразовым подтверждением администратора . Подписка на событие чата в качестве приложения чата доступна в предварительной версии для разработчиков .
Python
- Python 3.6 или выше
- Инструмент управления пакетами pip
- Новейшие клиентские библиотеки Google для Python. Для их установки или обновления выполните следующую команду в командной строке:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Чтобы использовать команды Google Cloud CLI, описанные в этом руководстве:
- Установите Google Cloud CLI .
- Для инициализации интерфейса командной строки
gcloudвыполните следующий код:
gcloud init
- Проект Google Cloud с включенной функцией выставления счетов. Для подписки на чат необходимо также включить API чата в вашем проекте Cloud и настроить поля «Имя приложения» , «URL-адрес аватара» и «Описание» . Подробнее см. в разделе «Создание приложения Google Chat» .
- Для каждого типа событий в подписке требуется аутентификация и соответствующая область авторизации :
- Как правило, требуется аутентификация пользователя с помощью экрана согласия OAuth, настроенного для приложения. При настройке экрана согласия необходимо указать область действия для поддержки каждого типа событий в рамках подписки. Чтобы настроить экран согласия и определить необходимые области действия, см. раздел «Выбор областей действия» .
- Для подписки на событие чата в качестве приложения чата требуется аутентификация приложения с одноразовым подтверждением администратора . Подписка на событие чата в качестве приложения чата доступна в предварительной версии для разработчиков .
Настройте свою среду
В следующем разделе объясняется, как настроить рабочую среду перед созданием подписки на Google Workspace.
Включите API событий Google Workspace и API Google Cloud Pub/Sub.
Перед использованием API Google необходимо включить их в проекте Google Cloud. В одном проекте Google Cloud можно включить один или несколько API.Консоль Google Cloud
В консоли Google Cloud откройте проект Google Cloud для вашего приложения и включите API событий Google Workspace и API публикации/подписки:
gcloud
В своей рабочей директории войдите в свой аккаунт Google:
gcloud auth loginУстановите для своего приложения облачный проект:
gcloud config set project PROJECT_IDЗамените
PROJECT_IDна идентификатор проекта Cloud для вашего приложения.Включите API событий Google Workspace и API Google Cloud Pub/Sub:
gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
Создание учетных данных клиента OAuth
Выберите тип вашего приложения , чтобы получить подробные инструкции по созданию идентификатора клиента OAuth:
Веб-приложение
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Выберите «Тип приложения» > «Веб-приложение» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- Добавьте авторизованные URI, связанные с вашим приложением:
- Клиентские приложения (JavaScript) – В разделе «Авторизованные источники JavaScript» нажмите «Добавить URI» . Затем введите URI, который будет использоваться для запросов браузера. Это определяет домены, с которых ваше приложение может отправлять API-запросы на сервер OAuth 2.0.
- Для серверных приложений (Java, Python и другие) — в разделе «Авторизованные URI перенаправления» нажмите «Добавить URI» . Затем введите URI конечной точки, на которую сервер OAuth 2.0 сможет отправлять ответы.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе «Идентификаторы клиентов OAuth 2.0» .
Обратите внимание на идентификатор клиента (Client ID). Секретные ключи клиента не используются в веб-приложениях.
Android
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Нажмите «Тип приложения» > «Android» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- В поле "Имя пакета" введите имя пакета из файла
AndroidManifest.xml. - В поле "Отпечаток сертификата SHA-1" введите сгенерированный отпечаток сертификата SHA-1 .
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
iOS
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Нажмите «Тип приложения» > «iOS» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- В поле "Идентификатор пакета" введите идентификатор пакета, указанный в файле
Info.plistприложения. - Необязательно: если ваше приложение отображается в Apple App Store, введите идентификатор приложения в App Store.
- Необязательно: в поле «Идентификатор команды» введите уникальную 10-символьную строку, сгенерированную Apple и присвоенную вашей команде.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
приложение Chrome
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Нажмите «Тип приложения» > «Расширение Chrome» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- В поле «Идентификатор элемента» введите уникальный 32-символьный идентификатор вашего приложения. Этот идентификатор можно найти в URL-адресе вашего приложения в Chrome Web Store и в панели разработчика Chrome Web Store .
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Настольное приложение
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Выберите «Тип приложения» > «Настольное приложение» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Телевизоры и устройства с ограниченным набором входных сигналов
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Нажмите «Тип приложения» > «Телевизоры и устройства ввода с ограниченным набором параметров» .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Универсальная платформа Windows (UWP)
- В консоли Google Cloud перейдите в >Google Auth platform > Клиенты .
- Нажмите «Создать клиента» .
- Щелкните Тип приложения > Универсальная платформа Windows (UWP) .
- В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
- В поле «Идентификатор магазина» введите уникальный 12-символьный идентификатор вашего приложения в Microsoft Store. Этот идентификатор можно найти в URL-адресе вашего приложения в Microsoft Store и в Центре партнеров .
- Нажмите «Создать» .
Вновь созданные учетные данные отображаются в разделе "Идентификаторы клиентов OAuth 2.0".
Загрузите JSON-файл с секретным ключом клиента.
Файл с секретными данными клиента представляет собой JSON-представление учетных данных идентификатора клиента OAuth, на которые ваше приложение может ссылаться при предоставлении учетных данных.
В консоли Google Cloud перейдите в > API и сервисы > Учетные данные .
В разделе «Идентификаторы клиентов OAuth 2.0» щелкните созданный вами идентификатор клиента.
Нажмите «Скачать JSON» .
Сохраните файл как
credentials.json.
Создайте тему Pub/Sub и подпишитесь на нее.
В этом разделе вы создаёте тему Pub/Sub и подписку на неё. Ваша тема Pub/Sub служит конечной точкой уведомлений, куда ваша подписка Google Workspace получает события.
Чтобы узнать больше о создании и управлении темами Pub/Sub, см. документацию Pub/Sub .
Чтобы создать тему Pub/Sub и подписаться на неё:
Консоль Google Cloud
В консоли Google Cloud перейдите на страницу Pub/Sub:
Перейдите на страницу Google Cloud Pub/Sub.
Убедитесь, что для вашего приложения выбран облачный проект.
Нажмите кнопку , создайте тему и выполните следующие действия:
- Введите название для вашей темы, например,
workspace-events-topic. - Оставьте выбранным параметр «Добавить подписку по умолчанию» . Pub/Sub присваивает этой подписке по умолчанию имя, похожее на имя вашей темы, например,
workspace-events-topic-sub. - Необязательно: обновите или настройте дополнительные свойства для вашей темы.
- Введите название для вашей темы, например,
Нажмите «Создать» . Полное название вашей темы имеет формат
projects/ PROJECT_ID /topics/ TOPIC_ID. Используйте это полное название на следующем шаге.Предоставьте доступ на публикацию сообщений Pub/Sub в вашей теме:
- На странице вашей темы перейдите в боковую панель и откройте вкладку «Разрешения» .
- Нажмите «Добавить основного пользователя» .
- В поле «Добавить субъекты» добавьте учетную запись службы для приложения Google Workspace, которое отправляет события в вашу подписку:
- Для событий чата:
- Если ваше приложение Chat является надстройкой Google Workspace, расширяющей функциональность Chat, используйте адрес электронной почты сервисной учетной записи на странице конфигурации API Chat . Для получения дополнительной информации см. раздел «Создание приложения Google Chat с использованием модели публикации/подписки» .
- Если ваше приложение для чата использует события взаимодействия Chat API , используйте
chat-api-push@system.gserviceaccount.com.
- Предварительная версия для разработчиков: : Для событий Drive
drive-api-event-push@system.gserviceaccount.com. - Для получения информации о мероприятиях Meet,
meet-api-event-push@system.gserviceaccount.com.
- Для событий чата:
- В меню «Назначить роли» выберите
Pub/Sub Publisher. - Нажмите «Сохранить» . Обновление прав доступа к вашей теме может занять несколько минут.
gcloud
В вашем проекте Cloud создайте тему, выполнив следующую команду:
gcloud pubsub topics create TOPIC_IDЗамените
TOPIC_IDна уникальный идентификатор вашей темы, например,workspace-events-topic.В результате отображается полное имя темы в формате
projects/ PROJECT_ID /topics/ TOPIC_ID. Запишите это имя и убедитесь, что значение PROJECT_ID совпадает с идентификатором облачного проекта вашего приложения. Используйте это имя темы на следующем шаге, а также для создания подписки на Google Workspace позже.Предоставьте доступ к публикации сообщений в вашей теме:
gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'Замените следующее:
-
TOPIC_NAME: Полное название темы, полученное на предыдущем шаге. Форматируется какprojects/ PROJECT_ID /topics/ TOPIC_ID. GOOGLE_WORKSPACE_APPLICATION: Приложение Google Workspace, которое должно передавать события в вашу подписку:- Для получения событий из чата используйте одну из следующих учетных записей служб:
- Если ваше приложение Chat является надстройкой Google Workspace, расширяющей функциональность Chat, используйте адрес электронной почты сервисной учетной записи на странице конфигурации API Chat . Для получения дополнительной информации см. раздел «Создание приложения Google Chat с использованием модели публикации/подписки» .
- Если ваше приложение для чата использует события взаимодействия Chat API , используйте
chat-api-push@system.gserviceaccount.com.
- Предварительная версия для разработчиков: Чтобы получать события из Google Drive, используйте
drive-api-event-push@system.gserviceaccount.com. - Для получения событий от Meet используйте
meet-api-event-push@system.gserviceaccount.com.
- Для получения событий из чата используйте одну из следующих учетных записей служб:
Обновление прав доступа к вашей теме может занять несколько минут.
-
Создайте подписку Pub/Sub для данной темы:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAMEЗамените следующее:
-
SUBSCRIPTION_NAME: Название вашей подписки, например,workspace-events-subscription. -
TOPIC_NAME: Название темы, которую вы создали на предыдущем шаге.
-
Подпишитесь на ресурс Google Workspace
В этом разделе вы подписываетесь на ресурс Google Workspace, за событиями которого хотите следить.
Выберите и определите целевой ресурс.
В подписке Google Workspace целевым ресурсом является ресурс Google Workspace, который вы отслеживаете на предмет событий. Целевой ресурс представлен в поле targetResource подписки, отформатированном с использованием полного имени ресурса. Например, для подписки, которая отслеживает пространство чата ( spaces/AAAABBBBBBB ), значение targetResource будет //chat.googleapis.com/spaces/AAAABBBBBBB .
Определите целевой ресурс для чата.
| Целевой ресурс | Формат | Ограничения |
|---|---|---|
| Космос | где SPACE — это идентификатор в имени ресурса | Пользователь чата или приложение чата, авторизующее подписку, должно быть участником пространства через свою учетную запись Google Workspace или Google Account. Поддерживается: |
| Все места для пользователя | | Подписка получает события только для тех пространств, где пользователь является участником через свою учетную запись Google Workspace или Google Account. Поддерживается только аутентификация пользователя . |
| Пользователь | где USER — это идентификатор в имени ресурса | Подписка получает только события, касающиеся пользователя, который авторизовал подписку. Пользователь не может авторизовать подписку от имени других пользователей. Поддерживается только аутентификация пользователя . |
Определите целевой ресурс для Drive
| Целевой ресурс | Формат | Ограничения (если применимо) |
|---|---|---|
| Файл | //drive.googleapis.com/files/ FILE где FILE — это идентификатор в имени ресурса | Пользователь, авторизующий подписку, должен иметь права доступа к файлу в рамках подписки, относящемуся к событию подписки. |
| Общий диск | //drive.googleapis.com/drives/ DRIVE где DRIVE — это идентификатор в имени ресурса Drive API | Подписка получает события только для тех элементов на общем диске, к которым пользователь является участником через свою учетную запись Google Workspace или учетную запись Google. |
Определите целевой ресурс для Meet.
| Целевой ресурс | Формат | Ограничения (если применимо) |
|---|---|---|
| Место для проведения встреч | //meet.googleapis.com/spaces/ SPACE где SPACE — это идентификатор в имени ресурса | |
| Пользователь | //cloudidentity.googleapis.com/users/ USER где USER — это идентификатор из поля | Подписка позволяет получать события обо всех конференц-залах, владельцем которых является пользователь. Как правило, владелец конференц-зала также является организатором события в Google Календаре, связанного с этим конференц-залом. |
Создайте подписку на Google Workspace.
Для создания подписки используйте метод subscriptions.create API событий Google Workspace, чтобы создать ресурс Subscription . Укажите следующие поля:
-
targetResource: Рабочая область Google, которую вы определили в предыдущем разделе , отформатированная с использованием ее полного имени ресурса. -
eventTypes: Массив из одного или нескольких типов событий, которые вы хотите получать о ресурсе. Например, если вашему приложению нужно знать только о новых сообщениях, опубликованных в чате, оно может просто подписаться на события о созданных сообщениях. -
notificationEndpoint: Конечная точка уведомлений, куда ваша подписка Google Workspace будет доставлять события. Используйте тему Pub/Sub, которую вы создали в предыдущем разделе. -
payloadOptions: Параметры, указывающие объем данных ресурсов, которые следует включить в полезную нагрузку события. Эта конфигурация влияет на время истечения срока действия вашей подписки. Для получения дополнительной информации см. раздел «Данные события» .
Чтобы создать подписку на Google Workspace:
Apps Script
В проекте Apps Script создайте новый файл скрипта с именем
createSubscriptionи добавьте следующий код:function createSubscription() { // The Google Workspace resource to monitor for events. const targetResource = 'TARGET_RESOURCE'; // The types of events to receive. const eventTypes = [EVENT_TYPES]; // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. const pubsubTopic = 'TOPIC_NAME'; // Whether to include resource data or not. const resourceData = RESOURCE_DATA; // Call the Workspace Events API using the advanced service. const response = WorkspaceEvents.Subscriptions.create({ targetResource: targetResource, eventTypes: eventTypes, notificationEndpoint: { pubsubTopic: pubsubTopic, }, payloadOptions: { includeResource: resourceData } }); console.log(response); }Замените следующее:
-
TARGET_RESOURCE: Ресурс Google Workspace , на который вы подписываетесь, в формате полного имени ресурса. Например, чтобы подписаться на пространство чата с идентификаторомAAAABBBB, используйте//chat.googleapis.com/spaces/AAAABBBB. -
EVENT_TYPES: Один или несколько типов событий , на которые вы хотите подписаться в целевом ресурсе. Формат: массив строк, например,'google.workspace.chat.message.v1.created'. -
TOPIC_NAME: Полное имя темы Pub/Sub, созданной в вашем облачном проекте. Формат:projects/ PROJECT_ID /topics/ TOPIC_ID. RESOURCE_DATA: Логическое значение, указывающее, включает ли подписка данные ресурса в полезную нагрузку:-
True: Включает все данные ресурса. Чтобы ограничить список включаемых полей, добавьте полеfieldMaskи укажите как минимум одно поле для измененного ресурса. Включение данных ресурса поддерживается только подписками на ресурсы чата. -
False: Исключает данные о ресурсах.
-
-
Для создания подписки на Google Workspace запустите функцию
createSubscriptionв вашем проекте Apps Script.
Python
В рабочей директории создайте файл с именем
create_subscription.pyи добавьте в него следующий код:"""Create subscription.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Specify required scopes. SCOPES = [SCOPES] # Authenticate with Google Workspace and get user authentication. flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES) CREDENTIALS = flow.run_local_server() # The Google Workspace resource to monitor for events. TARGET_RESOURCE = 'TARGET_RESOURCE' # The types of events to receive. EVENT_TYPES = [EVENT_TYPES] # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic. TOPIC = 'TOPIC_NAME' # Call the Workspace Events API using the service endpoint. service = build( 'workspaceevents', 'v1', credentials=CREDENTIALS, ) BODY = { 'target_resource': TARGET_RESOURCE, 'event_types': EVENT_TYPES, 'notification_endpoint': {'pubsub_topic': TOPIC}, 'payload_options': {'include_resource': RESOURCE_DATA}, } response = service.subscriptions().create(body=BODY).execute() print(response)Замените следующее:
-
SCOPES: Одна или несколько областей действия OAuth , поддерживающих каждый тип события для подписки. Форматируется как массив строк. Чтобы перечислить несколько областей действия, разделяйте их запятыми. Например,'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'. -
TARGET_RESOURCE: Ресурс Google Workspace , на который вы подписываетесь, в формате полного имени ресурса. Например, чтобы подписаться на пространство чата с идентификаторомAAAABBBB, используйте//chat.googleapis.com/spaces/AAAABBBB. -
EVENT_TYPES: Один или несколько типов событий , на которые вы хотите подписаться в целевом ресурсе. Формат: массив строк, например,'google.workspace.chat.message.v1.created'. -
TOPIC_NAME: Полное имя темы Pub/Sub, созданной в вашем облачном проекте. Формат:projects/ PROJECT_ID /topics/ TOPIC_ID. RESOURCE_DATA: Логическое значение, указывающее, включает ли подписка данные ресурса в полезную нагрузку:-
True: Включает все данные ресурса. Чтобы ограничить список включаемых полей, добавьте полеfieldMaskи укажите как минимум одно поле для измененного ресурса. Включение данных ресурса поддерживается только подписками на ресурсы чата. -
False: Исключает данные о ресурсах.
-
-
Для создания подписки Google Workspace выполните в терминале следующую команду:
python3 create_subscription.py
API событий Google Workspace возвращает завершенную длительную операцию , содержащую экземпляр ресурса Subscription , который вы создали.
Проверьте свою подписку на Google Workspace.
Чтобы проверить, получаете ли вы события Google Workspace, вы можете инициировать событие и получать сообщения в подписку Pub/Sub.
Чтобы проверить свою подписку на Google Workspace:
Консоль Google Cloud
Запустите один или несколько типов событий в целевом ресурсе вашей подписки Google Workspace. Например, если вы подписаны на получение новых сообщений в чате, отправьте сообщение в этот чат.
В консоли Google Cloud перейдите на страницу Pub/Sub:
Перейти в раздел "Публикация/Подписка"
Убедитесь, что для вашего приложения выбран облачный проект.
В меню «Публикация/Подписка» нажмите «Подписки» .
В таблице найдите подписку Pub/Sub для вашей темы и щелкните название подписки.
Нажмите вкладку «Сообщения» .
Нажмите «Pull» . Для генерации сообщения Pub/Sub по событию может потребоваться несколько минут.
gcloud
Запустите один или несколько типов событий в целевом ресурсе вашей подписки Google Workspace. Например, если вы подписаны на получение новых сообщений в чате, опубликуйте сообщение в этом чате.
Выполните следующую команду:
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ackЗамените следующее:
-
PUBSUB_SUBSCRIPTION_NAME: Полное название вашей подписки Pub/Sub, отформатированное какprojects/ PROJECT_ID /subscriptions/ SUBSCRIPTION_ID. -
MESSAGE_COUNT: Максимальное количество сообщений Pub/Sub, которые вы хотите получить.
Для генерации сообщения Pub/Sub по событию может потребоваться до нескольких минут.
-
Для каждого инициированного вами события Google Workspace в вашу подписку Pub/Sub отправляется сообщение, содержащее это событие. Подробнее см. раздел «Получение событий в виде сообщений Google Cloud Pub/Sub» .
Настройте способ получения событий вашим приложением.
Созданная вами подписка Pub/Sub основана на принципе "получения данных". После тестирования подписки Pub/Sub вы можете изменить тип доставки, чтобы изменить способ получения событий вашим приложением. Например, вы можете настроить подписку Pub/Sub на тип доставки "push", чтобы ваше приложение могло получать события непосредственно на конечную точку приложения.
Чтобы узнать о настройке подписки Pub/Sub, см. документацию Pub/Sub .
Подпишитесь на события в чате, используя приложение Google Chat.
Вы можете подписаться на события чата как приложение чата из пространства, в котором это приложение чата имеет членство. Приложения чата не могут подписываться на события пользователей.
Создайте ключ API
Для вызова метода API из предварительной версии для разработчиков необходимо использовать непубличную предварительную версию документа обнаружения API. Для аутентификации запроса необходимо передать ключ API.
Чтобы создать ключ API, откройте проект Google Cloud вашего приложения и выполните следующие действия:
- В консоли Google Cloud перейдите в > API и сервисы > Учетные данные .
- Нажмите «Создать учетные данные» > «Ключ API» .
- Ваш новый API-ключ отображен.
- Нажмите «Копировать , чтобы скопировать свой API-ключ для использования в коде вашего приложения. API-ключ также можно найти в разделе «API-ключи» в учетных данных вашего проекта.
- Для предотвращения несанкционированного использования мы рекомендуем ограничить места и типы API, для которых можно использовать ключ API. Более подробную информацию см. в разделе «Добавление ограничений API» .
Напишите скрипт, который вызывает API событий Google Workspace.
Вот как создать подписку на события в чате с аутентификацией приложения и подтверждением администратора :
- При необходимости создайте приложение для чата .
Подпишитесь на ресурс чата , но:
- Вместо аутентификации пользователя используйте аутентификацию в качестве приложения чата с одноразовым подтверждением администратора .
Укажите области авторизации, которые позволяют приложению «Чат» подписываться на события чата. Эти области авторизации всегда начинаются с
chat.appи включают следующее:-
https://www.googleapis.com/auth/chat.app.memberships: Подпишитесь на мероприятия для участников чата. -
https://www.googleapis.com/auth/chat.app.messages.readonly: Подписка на сообщения и реакции в чате. -
https://www.googleapis.com/auth/chat.app.spaces: Подпишитесь на события в чате.
-
Приведенный ниже пример кода подписывается на события сообщений в указанном пространстве чата:
Python
"""Create subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# The Google Workspace resource to monitor for events.
TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'
# The types of events to receive.
EVENT_TYPES = [
'google.workspace.chat.message.v1.created',
'google.workspace.chat.message.v1.updated',
'google.workspace.chat.message.v1.deleted',
]
# The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
TOPIC = 'TOPIC_NAME'
# Call the Workspace Events API using the service endpoint.
service = build(
'workspaceevents',
'v1beta',
credentials=CREDENTIALS,
discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
)
BODY = {
'target_resource': TARGET_RESOURCE,
'event_types': EVENT_TYPES,
'notification_endpoint': {'pubsub_topic': TOPIC},
'payload_options': {'include_resource': RESOURCE_DATA},
}
response = service.subscriptions().create(body=BODY).execute()
print(response)
Замените следующее:
-
SPACE_ID: Название пространства, которое можно получить из методаspaces.listв API чата или из URL-адреса пространства. -
TOPIC_NAME: Полное имя темы Pub/Sub, созданной в вашем облачном проекте. Формат:projects/ PROJECT_ID /topics/ TOPIC_ID. -
API_KEY: Ключ API, который вы создали для построения конечной точки сервиса для API событий Google Workspace. RESOURCE_DATA: Логическое значение, указывающее, включает ли подписка данные ресурса в полезную нагрузку:-
True: Включает все данные ресурса. Чтобы ограничить список включаемых полей, добавьте полеfieldMaskи укажите как минимум одно поле для измененного ресурса. Включение данных ресурса поддерживается только подписками на ресурсы чата. -
False: Исключает данные о ресурсах.
-