Создайте подписку на Google Workspace

На этой странице объясняется, как использовать API событий Google Workspace для создания подписки на ресурс Google Workspace. Подписка на Google Workspace позволяет вашему приложению получать информацию о событиях Google Workspace , которые представляют собой изменения в ресурсе Google Workspace. Чтобы узнать, какие ресурсы и типы событий поддерживает Google Workspace Events API, см. обзор Google Workspace Events API .

На этой странице представлены следующие шаги по созданию подписки на Google Workspace:

  1. Настройте свою среду.
  2. Создайте тему Google Cloud Pub/Sub и подпишитесь на нее. Вы используете эту тему как конечную точку для получения событий Google Workspace.
  3. Вызовите метод create() API Google Workspace Events для ресурса Subscription .
  4. Проверьте свою подписку на Google Workspace, чтобы убедиться, что ваша тема Pub/Sub получает события, на которые вы подписаны.
  5. При необходимости настройте способ отправки событий в конечную точку вашего приложения, чтобы ваше приложение могло обрабатывать событие и, при необходимости, предпринимать действия.

Предварительные условия

Скрипт приложений

  • Чтобы использовать команды Google Cloud CLI в этом руководстве:
    1. Установите Google Cloud CLI .
    2. Чтобы инициализировать интерфейс командной строки gcloud , запустите следующий код:
    3.   gcloud init
        
  • Проект Google Cloud с включенной оплатой. Для подписки на Chat вам также необходимо включить Chat API в своем облачном проекте и настроить поля «Имя приложения» , «URL-адрес аватара» и «Описание» . Подробную информацию см. в разделе Создание приложения Google Chat .
  • Требуется аутентификация пользователя с помощью экрана согласия OAuth, настроенного для приложения. При настройке экрана согласия необходимо указать область для поддержки каждого типа событий для подписки. Чтобы настроить экран согласия и определить необходимые области, см. Выбор областей .
  • Проект скрипта приложений:
    • Используйте свой проект Google Cloud вместо проекта по умолчанию, автоматически созданного Apps Script.
    • Для любых областей, которые вы добавили для настройки экрана согласия OAuth, вам также необходимо добавить области в файл appsscript.json в проекте Apps Script. Например:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Включите расширенную службу Google Workspace Events .

Питон

  • Python 3.6 или выше
  • Инструмент управления пакетами pip
  • Новейшие клиентские библиотеки Google для Python. Чтобы установить или обновить их, выполните следующую команду в интерфейсе командной строки:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Чтобы использовать команды Google Cloud CLI в этом руководстве:
    1. Установите Google Cloud CLI .
    2. Чтобы инициализировать интерфейс командной строки gcloud , запустите следующий код:
    3.   gcloud init
        
  • Проект Google Cloud с включенной оплатой. Для подписки на Chat вам также необходимо включить Chat API в своем облачном проекте и настроить поля «Имя приложения» , «URL-адрес аватара» и «Описание» . Подробную информацию см. в разделе Создание приложения Google Chat .
  • Требуется аутентификация пользователя с помощью экрана согласия OAuth, настроенного для приложения. При настройке экрана согласия необходимо указать область для поддержки каждого типа событий для подписки. Чтобы настроить экран согласия и определить необходимые области, см. Выбор областей .

Настройте свою среду

В следующем разделе объясняется, как настроить среду перед созданием подписки на Google Workspace.

Включите API Google Workspace Events и API Google Cloud Pub/Sub.

Прежде чем использовать API Google, вам необходимо включить их в проекте Google Cloud. Вы можете включить один или несколько API в одном проекте Google Cloud.

Консоль Google Cloud

В консоли Google Cloud откройте проект Google Cloud для своего приложения и включите API Google Workspace Events и API Pub/Sub:

Включите API

gcloud

  1. В рабочем каталоге войдите в свою учетную запись Google:

    gcloud auth login
  2. Настройте свой проект как облачный проект для вашего приложения:

    gcloud config set project PROJECT_ID

    Замените PROJECT_ID на идентификатор проекта Cloud для вашего приложения.

  3. Включите API Google Workspace Events и API Google Cloud Pub/Sub:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

Создайте учетные данные идентификатора клиента OAuth.

Выберите тип приложения для получения конкретных инструкций о том, как создать идентификатор клиента OAuth:

Веб-приложение

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Щелкните Тип приложения > Веб-приложение .
  4. В поле Имя введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Добавьте авторизованные URI, связанные с вашим приложением:
    • Клиентские приложения (JavaScript). В разделе «Авторизованные источники JavaScript» нажмите «Добавить URI» . Затем введите URI, который будет использоваться для запросов браузера. Это определяет домены, из которых ваше приложение может отправлять запросы API на сервер OAuth 2.0.
    • Серверные приложения (Java, Python и т. д.) – в разделе «Авторизованные URI перенаправления» нажмите «Добавить URI» . Затем введите URI конечной точки, на который сервер OAuth 2.0 может отправлять ответы.
  6. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0» .

    Обратите внимание на идентификатор клиента. Секреты клиента не используются для веб-приложений.

Андроид

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите Тип приложения > Android .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Имя пакета» введите имя пакета из файла AndroidManifest.xml .
  6. В поле «Отпечаток сертификата SHA-1» введите сгенерированный отпечаток сертификата SHA-1 .
  7. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

iOS

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите Тип приложения > iOS .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор пакета» введите идентификатор пакета, указанный в файле Info.plist приложения.
  6. Необязательно: если ваше приложение появилось в Apple App Store, введите идентификатор App Store.
  7. Необязательно: в поле «Идентификатор команды» введите уникальную строку из 10 символов, созданную Apple и назначенную вашей команде.
  8. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Приложение Chrome

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите Тип приложения > Расширение Chrome .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор элемента» введите уникальную 32-значную строку идентификатора вашего приложения. Это значение идентификатора можно найти в URL-адресе Интернет-магазина Chrome вашего приложения и на панели инструментов разработчика Интернет-магазина Chrome .
  6. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Настольное приложение

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите Тип приложения > Приложение для ПК .
  4. В поле Имя введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Телевизоры и ограниченные устройства ввода

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите «Тип приложения» > «Телевизоры и устройства с ограниченным вводом» .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Универсальная платформа Windows (UWP)

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Щелкните Тип приложения > Универсальная платформа Windows (UWP) .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор магазина» введите уникальное 12-значное значение идентификатора Microsoft Store вашего приложения. Этот идентификатор можно найти в URL-адресе вашего приложения в Microsoft Store и в Центре партнеров .
  6. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Загрузите JSON-файл секретного клиента.

Секретный файл клиента — это JSON-представление учетных данных идентификатора клиента OAuth, на которое ваше приложение может ссылаться при предоставлении учетных данных.

  1. В консоли Google Cloud выберите > API и службы > Учетные данные .

    Перейти к учетным данным

  2. В разделе «Идентификаторы клиентов OAuth 2.0» щелкните созданный вами идентификатор клиента.

  3. Нажмите «Загрузить JSON» .

  4. Сохраните файл как client_secrets.json .

Создайте тему Pub/Sub и подпишитесь на нее.

В этом разделе вы создаете тему Pub/Sub и подписываетесь на эту тему. Ваша тема Pub/Sub служит конечной точкой уведомлений, откуда ваша подписка на Google Workspace получает события.

Дополнительные сведения о создании тем Pub/Sub и управлении ими см. в документации Pub/Sub .

Чтобы создать тему Pub/Sub и подписаться на нее:

Консоль Google Cloud

  1. В консоли Google Cloud перейдите на страницу Pub/Sub:

    Перейдите в Google Cloud Pub/Sub.

    Убедитесь, что для вашего приложения выбран облачный проект.

  2. Нажмите Создать тему и выполните следующие действия:

    1. Введите название своей темы, например workspace-events-topic .
    2. Оставьте выбранным параметр «Добавить подписку по умолчанию» . Pub/Sub называет эту подписку по умолчанию аналогично названию вашей темы, например workspace-events-topic-sub .
    3. Необязательно: обновите или настройте дополнительные свойства для вашей темы.
  3. Нажмите Создать . Полное название темы имеет формат: projects/ PROJECT_ID /topics/ TOPIC_ID . Это полное имя вы используете на более позднем этапе.

  4. Предоставьте доступ к публикации сообщений Pub/Sub в вашей теме:

    1. На странице вашей темы перейдите на боковую панель и откройте вкладку «Разрешения» .
    2. Нажмите «Добавить принципала» .
    3. В поле «Добавить участников» добавьте сервисный аккаунт для приложения Google Workspace, который доставляет события в вашу подписку:
      1. Для событий чата: chat-api-push@system.gserviceaccount.com .
      2. Для мероприятий Meet meet-api-event-push@system.gserviceaccount.com .
    4. В меню «Назначить роли» выберите Pub/Sub Publisher .
    5. Нажмите Сохранить . Обновление разрешений для вашей темы может занять несколько минут.

gcloud

  1. В своем облачном проекте создайте тему, выполнив следующую команду:

    gcloud pubsub topics create TOPIC_ID

    Замените TOPIC_ID уникальным идентификатором вашей темы, например workspace-events-topic .

    В выходных данных отображается полное имя темы в формате projects/ PROJECT_ID /topics/ TOPIC_ID . Запишите имя и убедитесь, что значение PROJECT_ID соответствует идентификатору облачного проекта вашего приложения. Название темы вы используете на следующем шаге, а также для создания подписки на Google Workspace позже.

  2. Предоставьте доступ к публикации сообщений в вашей теме:

    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-api-push@system.gserviceaccount.com .
      • Чтобы получать события от Meet, используйте meet-api-event-push@system.gserviceaccount.com .

    Обновление разрешений для вашей темы может занять несколько минут.

  3. Создайте подписку 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 подписки, отформатированном с использованием полного имени ресурса. Например, для подписки, которая отслеживает пространство Google Chat ( spaces/AAAABBBBBBB ), значение targetResource//chat.googleapis.com/spaces/AAAABBBBBBB .

Прежде чем создавать подписку, воспользуйтесь следующими разделами, чтобы узнать, как идентифицировать и форматировать целевой ресурс.

Определите целевой ресурс для Chat

Целевой ресурс Формат Ограничения
Космос

//chat.googleapis.com/spaces/ SPACE

где SPACE — это идентификатор в имени ресурса space Chat API. Вы можете получить идентификатор из URL-адреса пространства или с помощью метода spaces.list() .

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

//chat.googleapis.com/spaces/-

Подписка получает события только для тех пространств, участником которых является пользователь через свою учетную запись Google Workspace или Google.
Пользователь

//cloudidentity.googleapis.com/users/ USER

где USER — это идентификатор в имени user ресурса Chat API. Подробную информацию см. в разделе Идентификация и указание пользователей Google Chat .

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

Определите целевой ресурс для Meet

Целевой ресурс Формат Ограничения (если применимо)
Место для встреч //meet.googleapis.com/spaces/ SPACE

где SPACE — это идентификатор в имени ресурса space Meet REST API. Подробную информацию см. в разделе «Как Meet определяет место для встреч» .

Пользователь //cloudidentity.googleapis.com/users/ USER

где USER — это идентификатор в поле signedinUser.user ресурса participant Meet REST API. Подробнее см. Работа с участниками .

Подписка получает события о пространствах для собраний, где пользователь является одним из следующих:

  • Владелец конференц-зала.
  • Участник встречи.
  • Организатор мероприятия Календаря Google, связанного с местом встречи.

Создайте подписку на Google Workspace

Чтобы создать подписку, вы используете метод subscriptions.create() API Google Workspace Events для создания ресурса Subscription . Вы указываете следующие поля:

  • targetResource : Google Workspace, указанный в предыдущем разделе , отформатированный с использованием полного имени ресурса.
  • eventTypes : массив из одного или нескольких типов событий, которые вы хотите получать о ресурсе. Например, если вашему приложению нужно знать только о новых сообщениях, опубликованных в пространстве чата, ваше приложение может просто подписаться на события о созданных сообщениях.
  • notificationEndpoint : конечная точка уведомлений, в которой ваша подписка на Google Workspace доставляет события. Вы используете тему Pub/Sub, созданную в предыдущем разделе.
  • payloadOptions : параметры, позволяющие указать, сколько данных о ресурсах следует включить в полезные данные события. Эта конфигурация влияет на срок действия вашей подписки. Дополнительную информацию см. в разделе Данные о событиях .

Чтобы создать подписку на Google Workspace:

Скрипт приложений

  1. В проекте 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 , на который вы подписываетесь, в формате полного имени ресурса. Например, чтобы подписаться на пространство Google Chat с идентификатором пространства 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 и укажите хотя бы одно поле для измененного ресурса. Только подписки на ресурсы Chat поддерживают включение данных ресурсов.
      • False : исключает данные ресурсов.
  2. Чтобы создать подписку на Google Workspace, запустите функцию createSubscription в проекте Apps Script.

Питон

  1. В своем рабочем каталоге создайте файл с именем 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('client_secrets.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 , на который вы подписываетесь, в формате полного имени ресурса. Например, чтобы подписаться на пространство Google Chat с идентификатором пространства 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 и укажите хотя бы одно поле для измененного ресурса. Только подписки на ресурсы Chat поддерживают включение данных ресурсов.
      • False : исключает данные ресурсов.
  2. Чтобы создать подписку на Google Workspace, запустите в своем терминале следующую команду:

    python3 create_subscription.py

API событий Google Workspace возвращает завершенную длительную операцию , содержащую экземпляр созданного вами ресурса Subscription .

Проверьте свою подписку на Google Workspace

Чтобы проверить, что вы получаете события Google Workspace, вы можете инициировать событие и переместить сообщения в подписку Pub/Sub.

Чтобы проверить подписку на Google Workspace:

Консоль Google Cloud

  1. Запустите один или несколько типов событий в целевом ресурсе вашей подписки на Google Workspace. Например, если вы подписались на новые сообщения в чат-группе, опубликуйте сообщение в этой теме.

  2. В консоли Google Cloud перейдите на страницу Pub/Sub:

    Перейти в паб/саб

    Убедитесь, что для вашего приложения выбран облачный проект.

  3. В меню Pub/Sub нажмите «Подписки» .

  4. В таблице найдите подписку Pub/Sub для вашей темы и нажмите на название подписки.

  5. Откройте вкладку «Сообщения» .

  6. Нажмите «Потянуть» . Создание сообщения Pub/Sub может занять до нескольких минут.

gcloud

  1. Запустите один или несколько типов событий в целевом ресурсе вашей подписки на Google Workspace. Например, если вы подписались на новые сообщения в чат-группе, опубликуйте сообщение в этой теме.

  2. Выполните следующую команду:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    Замените следующее:

    • PUBSUB_SUBSCRIPTION_NAME : полное название вашей подписки Pub/Sub в формате projects/ SUBSCRIPTION_ID /subscriptions/ SUBSCRIPTION_ID .
    • MESSAGE_COUNT : максимальное количество сообщений Pub/Sub, которые вы хотите получить.

    Создание сообщения Pub/Sub может занять до нескольких минут.

Для каждого инициированного вами события Google Workspace в вашу подписку Pub/Sub доставляется сообщение, содержащее это событие. Подробную информацию см. в разделе Получение событий в виде сообщений Google Cloud Pub/Sub .

Настройте способ получения событий вашим приложением

Созданная вами подписка Pub/Sub основана на запросе. После проверки вашей подписки Pub/Sub вы можете обновить тип доставки, чтобы изменить способ получения событий вашим приложением. Например, вы можете настроить подписку Pub/Sub на тип принудительной доставки, чтобы ваше приложение могло получать события непосредственно в конечную точку приложения.

Дополнительные сведения о настройке подписки Pub/Sub см. в документации Pub/Sub .

,

На этой странице объясняется, как использовать API событий Google Workspace для создания подписки на ресурс Google Workspace. Подписка на Google Workspace позволяет вашему приложению получать информацию о событиях Google Workspace , которые представляют собой изменения в ресурсе Google Workspace. Чтобы узнать, какие ресурсы и типы событий поддерживает Google Workspace Events API, см. обзор Google Workspace Events API .

На этой странице представлены следующие шаги по созданию подписки на Google Workspace:

  1. Настройте свою среду.
  2. Создайте тему Google Cloud Pub/Sub и подпишитесь на нее. Вы используете эту тему как конечную точку для получения событий Google Workspace.
  3. Вызовите метод create() API Google Workspace Events для ресурса Subscription .
  4. Проверьте свою подписку на Google Workspace, чтобы убедиться, что ваша тема Pub/Sub получает события, на которые вы подписаны.
  5. При необходимости настройте способ отправки событий в конечную точку вашего приложения, чтобы ваше приложение могло обрабатывать событие и, при необходимости, предпринимать действия.

Предварительные условия

Скрипт приложений

  • Чтобы использовать команды Google Cloud CLI в этом руководстве:
    1. Установите Google Cloud CLI .
    2. Чтобы инициализировать интерфейс командной строки gcloud , запустите следующий код:
    3.   gcloud init
        
  • Проект Google Cloud с включенной оплатой. Для подписки на Chat вам также необходимо включить Chat API в своем облачном проекте и настроить поля «Имя приложения» , «URL-адрес аватара» и «Описание» . Подробную информацию см. в разделе Создание приложения Google Chat .
  • Требуется аутентификация пользователя с помощью экрана согласия OAuth, настроенного для приложения. При настройке экрана согласия необходимо указать область для поддержки каждого типа событий для подписки. Чтобы настроить экран согласия и определить необходимые области, см. Выбор областей .
  • Проект скрипта приложений:
    • Используйте свой проект Google Cloud вместо проекта по умолчанию, автоматически созданного Apps Script.
    • Для любых областей, которые вы добавили для настройки экрана согласия OAuth, вам также необходимо добавить области в файл appsscript.json в проекте Apps Script. Например:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Включите расширенную службу Google Workspace Events .

Питон

  • Python 3.6 или выше
  • Инструмент управления пакетами pip
  • Новейшие клиентские библиотеки Google для Python. Чтобы установить или обновить их, выполните следующую команду в интерфейсе командной строки:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Чтобы использовать команды Google Cloud CLI в этом руководстве:
    1. Установите Google Cloud CLI .
    2. Чтобы инициализировать интерфейс командной строки gcloud , запустите следующий код:
    3.   gcloud init
        
  • Проект Google Cloud с включенной оплатой. Для подписки на Chat вам также необходимо включить Chat API в своем облачном проекте и настроить поля «Имя приложения» , «URL-адрес аватара» и «Описание» . Подробную информацию см. в разделе Создание приложения Google Chat .
  • Требуется аутентификация пользователя с помощью экрана согласия OAuth, настроенного для приложения. При настройке экрана согласия необходимо указать область для поддержки каждого типа событий для подписки. Чтобы настроить экран согласия и определить необходимые области, см. Выбор областей .

Настройте свою среду

В следующем разделе объясняется, как настроить среду перед созданием подписки на Google Workspace.

Включите API Google Workspace Events и API Google Cloud Pub/Sub.

Прежде чем использовать API Google, вам необходимо включить их в проекте Google Cloud. Вы можете включить один или несколько API в одном проекте Google Cloud.

Консоль Google Cloud

В консоли Google Cloud откройте проект Google Cloud для своего приложения и включите API Google Workspace Events и API Pub/Sub:

Включите API

gcloud

  1. В рабочем каталоге войдите в свою учетную запись Google:

    gcloud auth login
  2. Настройте свой проект как облачный проект для вашего приложения:

    gcloud config set project PROJECT_ID

    Замените PROJECT_ID на идентификатор проекта Cloud для вашего приложения.

  3. Включите API Google Workspace Events и API Google Cloud Pub/Sub:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

Создайте учетные данные идентификатора клиента OAuth.

Выберите тип приложения для получения конкретных инструкций о том, как создать идентификатор клиента OAuth:

Веб-приложение

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Щелкните Тип приложения > Веб-приложение .
  4. В поле Имя введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Добавьте авторизованные URI, связанные с вашим приложением:
    • Клиентские приложения (JavaScript). В разделе «Авторизованные источники JavaScript» нажмите «Добавить URI» . Затем введите URI, который будет использоваться для запросов браузера. Это определяет домены, из которых ваше приложение может отправлять запросы API на сервер OAuth 2.0.
    • Серверные приложения (Java, Python и т. д.) – в разделе «Авторизованные URI перенаправления» нажмите «Добавить URI» . Затем введите URI конечной точки, на который сервер OAuth 2.0 может отправлять ответы.
  6. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0» .

    Обратите внимание на идентификатор клиента. Секреты клиента не используются для веб-приложений.

Андроид

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите Тип приложения > Android .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Имя пакета» введите имя пакета из файла AndroidManifest.xml .
  6. В поле «Отпечаток сертификата SHA-1» введите сгенерированный отпечаток сертификата SHA-1 .
  7. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

iOS

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите Тип приложения > iOS .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор пакета» введите идентификатор пакета, указанный в файле Info.plist приложения.
  6. Необязательно: если ваше приложение появилось в Apple App Store, введите идентификатор App Store.
  7. Необязательно: в поле «Идентификатор команды» введите уникальную строку из 10 символов, созданную Apple и назначенную вашей команде.
  8. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Приложение Chrome

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите Тип приложения > Расширение Chrome .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор элемента» введите уникальную 32-значную строку идентификатора вашего приложения. Это значение идентификатора можно найти в URL-адресе Интернет-магазина Chrome вашего приложения и на панели инструментов разработчика Интернет-магазина Chrome .
  6. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Настольное приложение

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите Тип приложения > Приложение для ПК .
  4. В поле Имя введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Телевизоры и ограниченные устройства ввода

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Нажмите «Тип приложения» > «Телевизоры и устройства с ограниченным вводом» .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Универсальная платформа Windows (UWP)

  1. В консоли Google Cloud перейдите в Меню > > Клиенты .

    Перейти к Клиентам

  2. Нажмите Создать клиента .
  3. Щелкните Тип приложения > Универсальная платформа Windows (UWP) .
  4. В поле «Имя» введите имя учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор магазина» введите уникальное 12-значное значение идентификатора Microsoft Store вашего приложения. Этот идентификатор можно найти в URL-адресе вашего приложения в Microsoft Store и в Центре партнеров .
  6. Нажмите Создать .

    Вновь созданные учетные данные появятся в разделе «Идентификаторы клиентов OAuth 2.0».

Загрузите JSON-файл секретного клиента.

Секретный файл клиента — это JSON-представление учетных данных идентификатора клиента OAuth, на которое ваше приложение может ссылаться при предоставлении учетных данных.

  1. В консоли Google Cloud выберите > API и службы > Учетные данные .

    Перейти к учетным данным

  2. В разделе «Идентификаторы клиентов OAuth 2.0» щелкните созданный вами идентификатор клиента.

  3. Нажмите «Загрузить JSON» .

  4. Сохраните файл как client_secrets.json .

Создайте тему Pub/Sub и подпишитесь на нее.

В этом разделе вы создаете тему Pub/Sub и подписываетесь на эту тему. Ваша тема Pub/Sub служит конечной точкой уведомлений, откуда ваша подписка на Google Workspace получает события.

Дополнительные сведения о создании тем Pub/Sub и управлении ими см. в документации Pub/Sub .

Чтобы создать тему Pub/Sub и подписаться на нее:

Консоль Google Cloud

  1. В консоли Google Cloud перейдите на страницу Pub/Sub:

    Перейдите в Google Cloud Pub/Sub.

    Убедитесь, что для вашего приложения выбран облачный проект.

  2. Нажмите Создать тему и выполните следующие действия:

    1. Введите название своей темы, например workspace-events-topic .
    2. Оставьте выбранным параметр «Добавить подписку по умолчанию» . Pub/Sub называет эту подписку по умолчанию аналогично названию вашей темы, например workspace-events-topic-sub .
    3. Необязательно: обновите или настройте дополнительные свойства для вашей темы.
  3. Нажмите Создать . Полное название темы имеет формат: projects/ PROJECT_ID /topics/ TOPIC_ID . Это полное имя вы используете на более позднем этапе.

  4. Предоставьте доступ к публикации сообщений Pub/Sub в вашей теме:

    1. На странице вашей темы перейдите на боковую панель и откройте вкладку «Разрешения» .
    2. Нажмите «Добавить принципала» .
    3. В поле «Добавить участников» добавьте сервисный аккаунт для приложения Google Workspace, который доставляет события в вашу подписку:
      1. Для событий чата: chat-api-push@system.gserviceaccount.com .
      2. Для мероприятий Meet meet-api-event-push@system.gserviceaccount.com .
    4. В меню «Назначить роли» выберите Pub/Sub Publisher .
    5. Нажмите Сохранить . Обновление разрешений для вашей темы может занять несколько минут.

gcloud

  1. В своем облачном проекте создайте тему, выполнив следующую команду:

    gcloud pubsub topics create TOPIC_ID

    Замените TOPIC_ID уникальным идентификатором вашей темы, например workspace-events-topic .

    В выходных данных отображается полное имя темы в формате projects/ PROJECT_ID /topics/ TOPIC_ID . Запишите имя и убедитесь, что значение PROJECT_ID соответствует идентификатору облачного проекта вашего приложения. Название темы вы используете на следующем шаге, а также для создания подписки на Google Workspace позже.

  2. Предоставьте доступ к публикации сообщений в вашей теме:

    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-api-push@system.gserviceaccount.com .
      • Чтобы получать события от Meet, используйте meet-api-event-push@system.gserviceaccount.com .

    Обновление разрешений для вашей темы может занять несколько минут.

  3. Создайте подписку 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 подписки, отформатированном с использованием полного имени ресурса. Например, для подписки, которая отслеживает пространство Google Chat ( spaces/AAAABBBBBBB ), значение targetResource//chat.googleapis.com/spaces/AAAABBBBBBB .

Прежде чем создавать подписку, воспользуйтесь следующими разделами, чтобы узнать, как идентифицировать и форматировать целевой ресурс.

Определите целевой ресурс для Chat

Целевой ресурс Формат Ограничения
Космос

//chat.googleapis.com/spaces/ SPACE

где SPACE — это идентификатор в имени ресурса space Chat API. Вы можете получить идентификатор из URL-адреса пространства или с помощью метода spaces.list() .

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

//chat.googleapis.com/spaces/-

Подписка получает события только для тех пространств, участником которых является пользователь через свою учетную запись Google Workspace или Google.
Пользователь

//cloudidentity.googleapis.com/users/ USER

где USER — это идентификатор в имени user ресурса Chat API. Подробную информацию см. в разделе Идентификация и указание пользователей Google Chat .

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

Определите целевой ресурс для Meet

Целевой ресурс Формат Ограничения (если применимо)
Место для встреч //meet.googleapis.com/spaces/ SPACE

где SPACE — это идентификатор в имени ресурса space Meet REST API. Подробную информацию см. в разделе «Как Meet определяет место для встреч» .

Пользователь //cloudidentity.googleapis.com/users/ USER

где USER — это идентификатор в поле signedinUser.user ресурса participant Meet REST API. Подробнее см. Работа с участниками .

Подписка получает события о промежутках, где пользователь является одним из следующих:

  • Владелец места встречи.
  • Участник в области встреч.
  • Организатор события Google Calendar, связанный с пространством для встреч.

Создать подписку Google Workspace

Чтобы создать подписку, вы используете метод API API API Google Workspace. subscriptions.create() для создания ресурса Subscription . Вы указываете следующие поля:

  • targetResource : рабочее пространство Google, которое вы определили в предыдущем разделе , отформатировано с использованием его полного имени ресурса.
  • eventTypes : массив одного или нескольких типов событий, которые вы хотите получить о ресурсе. Например, если ваше приложение нужно знать только о новых сообщениях, размещенных в пространстве чата, ваше приложение может просто подписаться на события о созданных сообщениях.
  • notificationEndpoint : конечная точка уведомления, где ваша подписка Google Workspace предоставляет события. Вы используете паб/суб -тема, которую вы создали в предыдущем разделе.
  • payloadOptions : Параметры, чтобы указать, сколько данных ресурса включить в полезную нагрузку события. Эта конфигурация влияет на время истечения для вашей подписки. Чтобы узнать больше, см. Данные о событиях .

Чтобы создать подписку Google Workspace:

Приложения скрипт

  1. В проекте сценария приложений создайте новый файл скрипта с именем 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 , на который вы подписываете, отформатированный в качестве полного имени ресурса. Например, чтобы подписаться на пространство чата Google с пространственным идентификатором AAAABBBB , используйте //chat.googleapis.com/spaces/AAAABBBB .
    • EVENT_TYPES : один или несколько типов событий , на которые вы хотите подписаться в целевом ресурсе. Формат как массив строк, таких как 'google.workspace.chat.message.v1.created' .
    • TOPIC_NAME : Полное имя паба/суб -темы, которую вы создали в своем облачном проекте. Отформатировано как projects/ PROJECT_ID /topics/ TOPIC_ID .
    • RESOURCE_DATA : логический, который указывает, включает ли подписка данные ресурсов в полезной нагрузке:

      • True : включает все данные ресурсов. Чтобы ограничить, какие поля включены, добавьте поле fieldMask и укажите хотя бы одно поле для измененного ресурса. Только подписка на поддержку ресурсов чата, включая данные ресурсов.
      • False : исключает данные ресурсов.
  2. Чтобы создать подписку Google Workspace, запустите функцию createSubscription в вашем проекте сценария приложений.

Питон

  1. В рабочем каталоге создайте файл с именем 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('client_secrets.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 , на который вы подписываете, отформатированный в качестве полного имени ресурса. Например, чтобы подписаться на пространство чата Google с пространственным идентификатором AAAABBBB , используйте //chat.googleapis.com/spaces/AAAABBBB .
    • EVENT_TYPES : один или несколько типов событий , на которые вы хотите подписаться в целевом ресурсе. Формат как массив строк, таких как 'google.workspace.chat.message.v1.created' .
    • TOPIC_NAME : Полное имя паба/суб -темы, которую вы создали в своем облачном проекте. Отформатировано как projects/ PROJECT_ID /topics/ TOPIC_ID .
    • RESOURCE_DATA : логический, который указывает, включает ли подписка данные ресурсов в полезной нагрузке:

      • True : включает все данные ресурсов. Чтобы ограничить, какие поля включены, добавьте поле fieldMask и укажите хотя бы одно поле для измененного ресурса. Только подписка на поддержку ресурсов чата, включая данные ресурсов.
      • False : исключает данные ресурсов.
  2. Чтобы создать подписку Google Workspace, запустите следующее в своем терминале:

    python3 create_subscription.py

API API Events Events Google Workspace возвращает заполненную долгосрочную операцию , которая содержит экземпляр Subscription ресурса, который вы создали.

Проверьте свою подписку Google Workspace

Чтобы проверить, что вы получаете события Google Workspace, вы можете запустить событие и вытащить сообщения в подписку Pub/Sub.

Чтобы проверить подписку Google Workspace:

Google Cloud Console

  1. Запустите один или несколько типов событий в целевом ресурсе вашей подписки Google Workspace. Например, если вы подписались на новые сообщения в пространстве чата, опубликуйте сообщение в пространство.

  2. В облачной консоли Google перейдите в паб/суб -страницу:

    Перейти в паб/sub

    Убедитесь, что облачный проект для вашего приложения выбран.

  3. В меню паба/подзадачи нажмите «Подписки» .

  4. В таблице найдите подписку Pub/Sub для вашей темы и нажмите имя подписки.

  5. Нажмите на вкладку «Сообщения» .

  6. Нажмите на развлечение . Это может занять несколько минут, чтобы событие сгенерировало паб/подраздел.

gcloud

  1. Запустите один или несколько типов событий в целевом ресурсе вашей подписки Google Workspace. Например, если вы подписались на новые сообщения в пространстве чата, опубликуйте сообщение в пространстве.

  2. Выполните следующую команду:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    Замените следующее:

    • PUBSUB_SUBSCRIPTION_NAME : полное имя вашего Pub/ Sub Propply, отформатированное как projects/ SUBSCRIPTION_ID /subscriptions/ SUBSCRIPTION_ID .
    • MESSAGE_COUNT : максимальное количество пабов/подразделений, которые вы хотите вытащить.

    Это может занять несколько минут, чтобы событие сгенерировало паб/подраздел.

Для каждого события Google Workspace, которое вы запустили, сообщение доставляется в ваш паб/подписка, который содержит событие. Для получения подробной информации см. Прием событий в виде Google Cloud Pub/Sub Spects .

Настройте, как ваше приложение получает события

Созданная вами подписка Pub/Sub основана на притяжении. После того, как вы проверили, что ваш паб/подписка вы можете обновить тип доставки, чтобы изменить то, как ваше приложение получает события. Например, вы можете настроить подписку Pub/sub на тип Push Push Delivery, чтобы ваше приложение могло получать события непосредственно в конечную точку приложения.

Чтобы узнать о настройке подписки Pub/Sub, см. Pub/Sub Documentation .

,

На этой странице объясняется, как использовать API Google Workspace Events для создания подписки на ресурс Google Workspace. Подписка Google Workspace позволяет вашему приложению получать информацию о событиях Google Workspace , которые представляют изменения в ресурсе Google Workspace. Чтобы узнать, какие ресурсы и типы событий поддерживают API API Events Events, см. Обзор API API Events Events Google .

Эта страница включает в себя следующие шаги для создания подписки Google Workspace:

  1. Настройте вашу среду.
  2. Создайте и подпишитесь на паб Google Cloud Pub/Sub Topic. Вы используете эту тему в качестве конечной точки для получения событий Google Workspace.
  3. Позвоните в метод API API API API Google Spass Space create() на ресурсе Subscription .
  4. Проверьте свою подписку на Google Workspace, чтобы убедиться, что ваш паб/подменная тема получает события, на которые вы подписались.
  5. Необязательно, настройте, как подтолкнуть события в конечную точку для вашего приложения, чтобы ваше приложение могло обрабатывать событие и, при необходимости, принять меры.

Предварительные условия

Приложения скрипт

  • Чтобы использовать команды Google Cloud CLI в этом руководстве:
    1. Установите Google Cloud CLI .
    2. Чтобы инициализировать gcloud CLI, запустите следующий код:
    3.   gcloud init
        
  • Облачный проект Google с включенным выставлением счетов. Для подписки на чат вы также должны включить API чата в вашем облачном проекте и настроить имя приложения , URL -адрес аватара и поля описания . Для получения подробной информации см. Приложение Google Chat .
  • Требуется аутентификация пользователя с экраном согласия OAuth, настроенного для приложения. Когда вы настраиваете экран согласия, необходимо указать применение для поддержки каждого типа события для подписки. Чтобы настроить экран согласия и идентифицировать требуемые области, см. Выберите Scopes .
  • Проект сценария приложений:
    • Используйте свой Google Cloud Project, а не по умолчанию, созданный автоматически с помощью скрипта приложений.
    • Для любых областей, которые вы добавили для настройки экрана согласия OAuth, вы также должны добавить в файл appsscript.json в проекте сценария приложений. Например:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Включить Advanced Service Google Workspace Events .

Питон

  • Python 3.6 или более
  • Инструмент управления пакетами PIP
  • Последние библиотеки клиентов Google для Python. Чтобы установить или обновить их, запустите следующую команду в вашем интерфейсе командной строки:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Чтобы использовать команды Google Cloud CLI в этом руководстве:
    1. Установите Google Cloud CLI .
    2. Чтобы инициализировать gcloud CLI, запустите следующий код:
    3.   gcloud init
        
  • Облачный проект Google с включенным выставлением счетов. Для подписки на чат вы также должны включить API чата в вашем облачном проекте и настроить имя приложения , URL -адрес аватара и поля описания . Для получения подробной информации см. Приложение Google Chat .
  • Требуется аутентификация пользователя с экраном согласия OAuth, настроенного для приложения. Когда вы настраиваете экран согласия, необходимо указать применение для поддержки каждого типа события для подписки. Чтобы настроить экран согласия и идентифицировать требуемые области, см. Выберите Scopes .

Установите свою среду

В следующем разделе объясняется, как настроить вашу среду перед созданием подписки Google Workspace.

Включить API API и Google Cloud Pub/Sub API

Перед использованием Google API, вам необходимо включить их в облачном проекте Google. Вы можете включить один или несколько API в одном облачном проекте Google.

Google Cloud Console

В Cloud Console Google откройте Google Cloud Project для вашего приложения и включите API API и Pub/Sub API Google Workspace:

Включить API

gcloud

  1. В вашем рабочем каталоге войдите в свою учетную запись Google:

    gcloud auth login
  2. Установите свой проект в облачный проект для вашего приложения:

    gcloud config set project PROJECT_ID

    Замените PROJECT_ID на идентификатор проекта для облачного проекта для вашего приложения.

  3. Включите API API и Google Cloud Pub/Sub API:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

Создать учетные данные по идентификации клиента OAuth

Выберите тип приложения для конкретных инструкций о том, как создать идентификатор клиента OAuth:

Веб -приложение

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите Тип приложения > Веб -приложение .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Добавьте авторизованную URI, связанную с вашим приложением:
    • Приложения на стороне клиента (JavaScript) – Под авторизованными истоками JavaScript , нажмите «Добавить URI» . Затем введите URI для использования для запросов браузера. Это идентифицирует домены, из которых ваше приложение может отправлять запросы API на сервер OAuth 2.0.
    • Приложения на стороне сервера (Java, Python и многое другое) -под авторизованным перенаправлением URI , нажмите «Добавить URI» . Затем введите URI конечной точки, на который сервер OAuth 2.0 может отправлять ответы.
  6. Нажмите Создать .

    Недавно созданные учетные данные появляются под идентификаторами клиентов OAuth 2.0 .

    Обратите внимание на идентификатор клиента. Клиентские секреты не используются для веб -приложений.

Андроид

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите тип приложения > Android .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Имя пакета» введите имя пакета из вашего файла AndroidManifest.xml .
  6. В поле «Отпечаток пальца SHA-1» введите свой сгенерированный отпечаток пальца SHA-1 .
  7. Нажмите Создать .

    Недавно созданные учетные данные появляются под «идентификаторами клиентов OAuth 2.0».

iOS

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите тип приложения > iOS .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор пакета» введите идентификатор пакета, как указано в файле Info.plist в приложении.
  6. Необязательно: если ваше приложение отображается в Apple App Store, введите идентификатор магазина приложений.
  7. Необязательно: в поле «Team Id» введите уникальную 10-символьную строку, которая генерируется Apple и назначенной вашей команде.
  8. Нажмите Создать .

    Недавно созданные учетные данные появляются под «идентификаторами клиентов OAuth 2.0».

Chrome App

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите Тип приложения > Расширение Chrome .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор элемента» введите уникальную строку идентификатора 32-характера вашего приложения. Вы можете найти это значение идентификатора в URL -магазине Hrome Web Store в вашем приложении и на приборной панели разработчика Chrome Web Store .
  6. Нажмите Создать .

    Недавно созданные учетные данные появляются под «идентификаторами клиентов OAuth 2.0».

Настольное приложение

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите тип приложения > приложение для рабочего стола .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Нажмите Создать .

    Недавно созданные учетные данные появляются под «идентификаторами клиентов OAuth 2.0».

Телевизоры и ограниченные входные устройства

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите Тип приложения > ТВ и ограниченные устройства ввода .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Нажмите Создать .

    Недавно созданные учетные данные появляются под «идентификаторами клиентов OAuth 2.0».

Universal Windows Platform (UWP)

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите Тип приложения > Универсальная платформа Windows (UWP) .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор магазина» введите уникальное 12-символьное значение Microsoft Store Microsoft. Вы можете найти этот идентификатор в URL Microsoft Store и в партнерском центре .
  6. Нажмите Создать .

    Недавно созданные учетные данные появляются под «идентификаторами клиентов OAuth 2.0».

Загрузите файл Client Secret JSON

Секретный файл клиента представляет собой представление об учетных данных идентификаторов клиента OAuth, которые ваше приложение может ссылаться при предоставлении учетных данных.

  1. В Cloud Console Google перейдите в меню > API и сервисы > учетные данные .

    Перейти к полномочиям

  2. Под идентификаторами клиентов OAuth 2.0 нажмите на созданный вами идентификатор клиента.

  3. Нажмите Скачать JSON .

  4. Сохраните файл как client_secrets.json .

Создать и подписаться на паб/суб -тему

В этом разделе вы создаете паб/суб -тема и подписку на тему. Ваш паб/суб -тема служит конечной точкой уведомления, где ваша подписка Google Workspace получает события.

Чтобы узнать больше о создании и управлении темами Pub/Subs, см . Pub/Sub Documentation .

Чтобы создать и подписаться на паб/суб -тему:

Google Cloud Console

  1. В облачной консоли Google перейдите в паб/суб -страницу:

    Перейти в Google Cloud Pub/sub

    Убедитесь, что облачный проект для вашего приложения выбран.

  2. Нажмите CREATE ТЕМУ и сделайте следующее:

    1. Введите имя для вашей темы, такую ​​как workspace-events-topic .
    2. Оставьте выбранную подписку по умолчанию . Pub/Subsement Эта подписка по умолчанию аналогична имени вашей темы, например, workspace-events-topic-sub .
    3. Необязательно: обновлять или настроить дополнительные свойства для вашей темы.
  3. Нажмите Создать . Ваше полное имя темы отформатируется как projects/ PROJECT_ID /topics/ TOPIC_ID . Вы используете это полное имя на более позднем шаге.

  4. Предоставьте доступ к публикации пабов/суб -сообщений к вашей теме:

    1. На странице вашей темы перейдите на боковую панель и откройте вкладку «Разрешения» .
    2. Нажмите «Добавить принципал» .
    3. В поле «Добавить принципы» добавьте учетную запись Service для приложения Google Workspace, которое доставляет события для вашей подписки:
      1. Для событий чата, chat-api-push@system.gserviceaccount.com .
      2. Для встреч, встреч, meet-api-event-push@system.gserviceaccount.com .
    4. В меню «Назначение ролей» выберите Pub/Sub Publisher .
    5. Нажмите Сохранить . Для обновления разрешений на вашу тему может потребоваться несколько минут.

gcloud

  1. В вашем облачном проекте создайте тему, выполнив следующую команду:

    gcloud pubsub topics create TOPIC_ID

    Замените TOPIC_ID на уникальный идентификатор для вашей темы, такой как workspace-events-topic .

    Вывод отображает полное имя темы, отформатированное как projects/ PROJECT_ID /topics/ TOPIC_ID . Запишите имя и убедитесь, что значение для PROJECT_ID является идентификатором облачного проекта для вашего приложения. Вы используете имя темы на следующем шаге, а также для создания подписки Google Workspace позже.

  2. Предоставьте доступ к публикации сообщений в вашу тему:

    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-api-push@system.gserviceaccount.com .
      • Чтобы получить мероприятия от встречи, используйте meet-api-event-push@system.gserviceaccount.com .

    Для обновления разрешений на вашу тему может потребоваться несколько минут.

  3. Создайте подписку 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 подписки, отформатированного с использованием полного имени ресурса. Например, для подписки, которая контролирует пространство чата Google ( spaces/AAAABBBBBBB ), значение targetResource IS //chat.googleapis.com/spaces/AAAABBBBBBB .

Прежде чем создать подписку, используйте следующие разделы, чтобы узнать, как идентифицировать и отформатировать целевой ресурс.

Определите целевой ресурс для чата

Целевой ресурс Формат Ограничения
Космос

//chat.googleapis.com/spaces/ SPACE

где SPACE является идентификатором в названии ресурса space ресурса API чата. Вы можете получить идентификатор из URL -адреса пространства или использовать метод spaces.list() .

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

//chat.googleapis.com/spaces/-

Подписка получает только события только для пространств, где пользователь является участником через свою рабочую область Google или учетную запись Google.
Пользователь

//cloudidentity.googleapis.com/users/ USER

где USER является идентификатором в имени ресурса ресурса user API в чате. Для получения подробной информации см. Определите и укажите пользователей Google Chat .

Подписка получает только события о пользователе, который авторизовал подписку. Пользователь не может разрешить подписку от имени других пользователей.

Определите целевой ресурс для встречи

Целевой ресурс Формат Ограничения (если применимо)
Комплекс встречи //meet.googleapis.com/spaces/ SPACE

где SPACE является идентификатором в названии ресурса space ресурса API REST. Для получения подробной информации, посмотрите, как Meet определяет место для встреч .

Пользователь //cloudidentity.googleapis.com/users/ USER

где USER является идентификатором в области signedinUser.user ресурса participant API MEET REST. Для получения подробной информации см. Работу с участниками .

Подписка получает события о промежутках, где пользователь является одним из следующих:

  • Владелец места встречи.
  • Участник в области встреч.
  • Организатор события Google Calendar, связанный с пространством для встреч.

Создать подписку Google Workspace

Чтобы создать подписку, вы используете метод API API API Google Workspace. subscriptions.create() для создания ресурса Subscription . Вы указываете следующие поля:

  • targetResource : рабочее пространство Google, которое вы определили в предыдущем разделе , отформатировано с использованием его полного имени ресурса.
  • eventTypes : массив одного или нескольких типов событий, которые вы хотите получить о ресурсе. Например, если ваше приложение нужно знать только о новых сообщениях, размещенных в пространстве чата, ваше приложение может просто подписаться на события о созданных сообщениях.
  • notificationEndpoint : конечная точка уведомления, где ваша подписка Google Workspace предоставляет события. Вы используете паб/суб -тема, которую вы создали в предыдущем разделе.
  • payloadOptions : Параметры, чтобы указать, сколько данных ресурса включить в полезную нагрузку события. Эта конфигурация влияет на время истечения для вашей подписки. Чтобы узнать больше, см. Данные о событиях .

Чтобы создать подписку Google Workspace:

Приложения скрипт

  1. В проекте сценария приложений создайте новый файл скрипта с именем 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 , на который вы подписываете, отформатированный в качестве полного имени ресурса. Например, чтобы подписаться на пространство чата Google с пространственным идентификатором AAAABBBB , используйте //chat.googleapis.com/spaces/AAAABBBB .
    • EVENT_TYPES : один или несколько типов событий , на которые вы хотите подписаться в целевом ресурсе. Формат как массив строк, таких как 'google.workspace.chat.message.v1.created' .
    • TOPIC_NAME : Полное имя паба/суб -темы, которую вы создали в своем облачном проекте. Отформатировано как projects/ PROJECT_ID /topics/ TOPIC_ID .
    • RESOURCE_DATA : логический, который указывает, включает ли подписка данные ресурсов в полезной нагрузке:

      • True : включает все данные ресурсов. Чтобы ограничить, какие поля включены, добавьте поле fieldMask и укажите хотя бы одно поле для измененного ресурса. Только подписка на поддержку ресурсов чата, включая данные ресурсов.
      • False : исключает данные ресурсов.
  2. Чтобы создать подписку Google Workspace, запустите функцию createSubscription в вашем проекте сценария приложений.

Питон

  1. В рабочем каталоге создайте файл с именем 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('client_secrets.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 , на который вы подписываете, отформатированный в качестве полного имени ресурса. Например, чтобы подписаться на пространство чата Google с пространственным идентификатором AAAABBBB , используйте //chat.googleapis.com/spaces/AAAABBBB .
    • EVENT_TYPES : один или несколько типов событий , на которые вы хотите подписаться в целевом ресурсе. Формат как массив строк, таких как 'google.workspace.chat.message.v1.created' .
    • TOPIC_NAME : Полное имя паба/суб -темы, которую вы создали в своем облачном проекте. Отформатировано как projects/ PROJECT_ID /topics/ TOPIC_ID .
    • RESOURCE_DATA : логический, который указывает, включает ли подписка данные ресурсов в полезной нагрузке:

      • True : включает все данные ресурсов. Чтобы ограничить, какие поля включены, добавьте поле fieldMask и укажите хотя бы одно поле для измененного ресурса. Только подписка на поддержку ресурсов чата, включая данные ресурсов.
      • False : исключает данные ресурсов.
  2. Чтобы создать подписку Google Workspace, запустите следующее в своем терминале:

    python3 create_subscription.py

API API Events Events Google Workspace возвращает заполненную долгосрочную операцию , которая содержит экземпляр Subscription ресурса, который вы создали.

Проверьте свою подписку Google Workspace

Чтобы проверить, что вы получаете события Google Workspace, вы можете запустить событие и вытащить сообщения в подписку Pub/Sub.

Чтобы проверить подписку Google Workspace:

Google Cloud Console

  1. Запустите один или несколько типов событий в целевом ресурсе вашей подписки Google Workspace. Например, если вы подписались на новые сообщения в пространстве чата, опубликуйте сообщение в пространство.

  2. В облачной консоли Google перейдите в паб/суб -страницу:

    Перейти в паб/sub

    Убедитесь, что облачный проект для вашего приложения выбран.

  3. В меню паба/подзадачи нажмите «Подписки» .

  4. В таблице найдите подписку Pub/Sub для вашей темы и нажмите имя подписки.

  5. Нажмите на вкладку «Сообщения» .

  6. Нажмите на развлечение . Это может занять несколько минут, чтобы событие сгенерировало паб/подраздел.

gcloud

  1. Запустите один или несколько типов событий в целевом ресурсе вашей подписки Google Workspace. Например, если вы подписались на новые сообщения в пространстве чата, опубликуйте сообщение в пространстве.

  2. Выполните следующую команду:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    Замените следующее:

    • PUBSUB_SUBSCRIPTION_NAME : полное имя вашего Pub/ Sub Propply, отформатированное как projects/ SUBSCRIPTION_ID /subscriptions/ SUBSCRIPTION_ID .
    • MESSAGE_COUNT : максимальное количество пабов/подразделений, которые вы хотите вытащить.

    Это может занять несколько минут, чтобы событие сгенерировало паб/подраздел.

Для каждого события Google Workspace, которое вы запустили, сообщение доставляется в ваш паб/подписка, который содержит событие. Для получения подробной информации см. Прием событий в виде Google Cloud Pub/Sub Spects .

Настройте, как ваше приложение получает события

Созданная вами подписка Pub/Sub основана на притяжении. После того, как вы проверили, что ваш паб/подписка вы можете обновить тип доставки, чтобы изменить то, как ваше приложение получает события. Например, вы можете настроить подписку Pub/sub на тип Push Push Delivery, чтобы ваше приложение могло получать события непосредственно в конечную точку приложения.

Чтобы узнать о настройке подписки Pub/Sub, см. Pub/Sub Documentation .

,

На этой странице объясняется, как использовать API Google Workspace Events для создания подписки на ресурс Google Workspace. Подписка Google Workspace позволяет вашему приложению получать информацию о событиях Google Workspace , которые представляют изменения в ресурсе Google Workspace. Чтобы узнать, какие ресурсы и типы событий поддерживают API API Events Events, см . Обзор API API Events Events Google .

Эта страница включает в себя следующие шаги для создания подписки Google Workspace:

  1. Настройте вашу среду.
  2. Создайте и подпишитесь на паб Google Cloud Pub/Sub Topic. Вы используете эту тему в качестве конечной точки для получения событий Google Workspace.
  3. Позвоните в метод API API API API Google Spass Space create() на ресурсе Subscription .
  4. Проверьте свою подписку на Google Workspace, чтобы убедиться, что ваш паб/подменная тема получает события, на которые вы подписались.
  5. Необязательно, настройте, как подтолкнуть события в конечную точку для вашего приложения, чтобы ваше приложение могло обрабатывать событие и, при необходимости, принять меры.

Предварительные условия

Приложения скрипт

  • Чтобы использовать команды Google Cloud CLI в этом руководстве:
    1. Установите Google Cloud CLI .
    2. Чтобы инициализировать gcloud CLI, запустите следующий код:
    3.   gcloud init
        
  • Облачный проект Google с включенным выставлением счетов. Для подписки на чат вы также должны включить API чата в вашем облачном проекте и настроить имя приложения , URL -адрес аватара и поля описания . Для получения подробной информации см. Приложение Google Chat .
  • Требуется аутентификация пользователя с экраном согласия OAuth, настроенного для приложения. Когда вы настраиваете экран согласия, необходимо указать применение для поддержки каждого типа события для подписки. Чтобы настроить экран согласия и идентифицировать требуемые области, см. Выберите Scopes .
  • Проект сценария приложений:
    • Используйте свой Google Cloud Project, а не по умолчанию, созданный автоматически с помощью скрипта приложений.
    • Для любых областей, которые вы добавили для настройки экрана согласия OAuth, вы также должны добавить в файл appsscript.json в проекте сценария приложений. Например:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Включить Advanced Service Google Workspace Events .

Питон

  • Python 3.6 или более
  • Инструмент управления пакетами PIP
  • Последние библиотеки клиентов Google для Python. Чтобы установить или обновить их, запустите следующую команду в вашем интерфейсе командной строки:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Чтобы использовать команды Google Cloud CLI в этом руководстве:
    1. Установите Google Cloud CLI .
    2. Чтобы инициализировать gcloud CLI, запустите следующий код:
    3.   gcloud init
        
  • Облачный проект Google с включенным выставлением счетов. Для подписки на чат вы также должны включить API чата в вашем облачном проекте и настроить имя приложения , URL -адрес аватара и поля описания . Для получения подробной информации см. Приложение Google Chat .
  • Требуется аутентификация пользователя с экраном согласия OAuth, настроенного для приложения. Когда вы настраиваете экран согласия, необходимо указать применение для поддержки каждого типа события для подписки. Чтобы настроить экран согласия и идентифицировать требуемые области, см. Выберите Scopes .

Установите свою среду

В следующем разделе объясняется, как настроить вашу среду перед созданием подписки Google Workspace.

Включить API API и Google Cloud Pub/Sub API

Перед использованием Google API, вам необходимо включить их в облачном проекте Google. Вы можете включить один или несколько API в одном облачном проекте Google.

Google Cloud Console

В Cloud Console Google откройте Google Cloud Project для вашего приложения и включите API API и Pub/Sub API Google Workspace:

Включить API

gcloud

  1. В вашем рабочем каталоге войдите в свою учетную запись Google:

    gcloud auth login
  2. Установите свой проект в облачный проект для вашего приложения:

    gcloud config set project PROJECT_ID

    Замените PROJECT_ID на идентификатор проекта для облачного проекта для вашего приложения.

  3. Включите API API и Google Cloud Pub/Sub API:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

Создать учетные данные по идентификации клиента OAuth

Выберите тип приложения для конкретных инструкций о том, как создать идентификатор клиента OAuth:

Веб -приложение

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите Тип приложения > Веб -приложение .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. Добавьте авторизованную URI, связанную с вашим приложением:
    • Приложения на стороне клиента (JavaScript) – Под авторизованными истоками JavaScript , нажмите «Добавить URI» . Затем введите URI для использования для запросов браузера. Это идентифицирует домены, из которых ваше приложение может отправлять запросы API на сервер OAuth 2.0.
    • Приложения на стороне сервера (Java, Python и многое другое) -под авторизованным перенаправлением URI , нажмите «Добавить URI» . Затем введите URI конечной точки, на который сервер OAuth 2.0 может отправлять ответы.
  6. Нажмите Создать .

    Недавно созданные учетные данные появляются под идентификаторами клиентов OAuth 2.0 .

    Обратите внимание на идентификатор клиента. Клиентские секреты не используются для веб -приложений.

Андроид

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите тип приложения > Android .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Имя пакета» введите имя пакета из вашего файла AndroidManifest.xml .
  6. В поле «Отпечаток пальца SHA-1» введите свой сгенерированный отпечаток пальца SHA-1 .
  7. Нажмите Создать .

    Недавно созданные учетные данные появляются под «идентификаторами клиентов OAuth 2.0».

iOS

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите тип приложения > iOS .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор пакета» введите идентификатор пакета, как указано в файле Info.plist в приложении.
  6. Необязательно: если ваше приложение отображается в Apple App Store, введите идентификатор магазина приложений.
  7. Необязательно: в поле «Team Id» введите уникальную 10-символьную строку, которая генерируется Apple и назначенной вашей команде.
  8. Нажмите Создать .

    Недавно созданные учетные данные появляются под «идентификаторами клиентов OAuth 2.0».

Chrome App

  1. В консоли Cloud Google перейдите в меню > > Клиенты .

    Пойдите к клиентам

  2. Нажмите «Создать клиент» .
  3. Нажмите Тип приложения > Расширение Chrome .
  4. В поле «Имя» введите имя для учетных данных. Это имя отображается только в консоли Google Cloud.
  5. В поле «Идентификатор элемента» введите уникальную строку идентификатора 32-характера вашего приложения. Вы можете найти это значение идентификатора в URL -магазине Hrome Web Store в вашем приложении и на приборной панели разработчика Chrome Web Store .
  6. Нажмите Создать .

    The newly created credential appears under "OAuth 2.0 Client IDs."

Desktop app

  1. In the Google Cloud console, go to Menu > > Clients .

    Go to Clients

  2. Click Create Client .
  3. Click Application type > Desktop app .
  4. In the Name field, type a name for the credential. This name is only shown in the Google Cloud console.
  5. Нажмите Создать .

    The newly created credential appears under "OAuth 2.0 Client IDs."

TVs & Limited Input devices

  1. In the Google Cloud console, go to Menu > > Clients .

    Go to Clients

  2. Click Create Client .
  3. Click Application type > TVs & Limited Input devices .
  4. In the "Name" field, type a name for the credential. This name is only shown in the Google Cloud console.
  5. Нажмите Создать .

    The newly created credential appears under "OAuth 2.0 Client IDs."

Universal Windows Platform (UWP)

  1. In the Google Cloud console, go to Menu > > Clients .

    Go to Clients

  2. Click Create Client .
  3. Click Application type > Universal Windows Platform (UWP) .
  4. In the "Name" field, type a name for the credential. This name is only shown in the Google Cloud console.
  5. In the "Store ID" field, enter your app's unique, 12-character Microsoft Store ID value. You can find this ID in your app's Microsoft Store URL and in the Partner Center .
  6. Нажмите Создать .

    The newly created credential appears under "OAuth 2.0 Client IDs."

Download the client secret JSON file

The client secret file is a JSON representation of the OAuth client ID credentials that your app can reference when providing credentials.

  1. In the Google Cloud console, go to Menu > APIs & Services > Credentials .

    Go to Credentials

  2. Under OAuth 2.0 Client IDs , click the client ID that you created.

  3. Click Download JSON .

  4. Save the file as client_secrets.json .

Create and subscribe to a Pub/Sub topic

In this section, you create a Pub/Sub topic and subscription to the topic. Your Pub/Sub topic serves as the notification endpoint where your Google Workspace subscription receives events.

To learn more about creating and managing Pub/Sub topics, see the Pub/Sub documentation .

To create and subscribe to a Pub/Sub topic:

Google Cloud console

  1. In the Google Cloud console, go to the Pub/Sub page:

    Go to Google Cloud Pub/Sub

    Make sure that the Cloud project for your app is selected.

  2. Click Create topic and do the following:

    1. Enter a name for your topic, such as workspace-events-topic .
    2. Leave Add a default subscription selected. Pub/Sub names this default subscription similar to your topic's name, such as workspace-events-topic-sub .
    3. Optional: Update or configure additional properties for your topic.
  3. Нажмите Создать . Your full topic name is formatted as projects/ PROJECT_ID /topics/ TOPIC_ID . You use this full name in a later step.

  4. Grant access to publish Pub/Sub messages to your topic:

    1. On your topic's page, go to the side panel and open the Permissions tab.
    2. Click Add Principal .
    3. In the Add principals field, add the service account for the Google Workspace application that delivers events to your subscription:
      1. For Chat events, chat-api-push@system.gserviceaccount.com .
      2. For Meet events, meet-api-event-push@system.gserviceaccount.com .
    4. In the Assign roles menu, select Pub/Sub Publisher .
    5. Нажмите Сохранить . It can take a few minutes to update the permissions for your topic.

gcloud

  1. In your Cloud project, create a topic by running the following command:

    gcloud pubsub topics create TOPIC_ID

    Replace TOPIC_ID with a unique ID for your topic, such as workspace-events-topic .

    The output displays the full topic name, formatted as projects/ PROJECT_ID /topics/ TOPIC_ID . Make note of the name, and make sure the value for PROJECT_ID is the Cloud project ID for your app. You use the topic name in the following step, and to create the Google Workspace subscription later.

  2. Grant access to publish messages to your topic:

    gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'

    Замените следующее:

    • TOPIC_NAME : The full topic name, which is the output from the previous step. Formatted as projects/ PROJECT_ID /topics/ TOPIC_ID .
    • GOOGLE_WORKSPACE_APPLICATION : The Google Workspace application that must deliver events to your subscription:

      • To receive events from Chat, use chat-api-push@system.gserviceaccount.com .
      • To receive events from Meet, use meet-api-event-push@system.gserviceaccount.com .

    It can take a few minutes to update the permissions for your topic.

  3. Create a Pub/Sub subscription for the topic:

     gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

    Замените следующее:

    • SUBSCRIPTION_NAME : A name for your subscription, such as workspace-events-subscription .
    • TOPIC_NAME : The name of your topic that you created in the previous step.

Subscribe to a Google Workspace resource

In this section, you subscribe to the Google Workspace resource that you want to monitor for events.

Choose and identify the target resource

In a Google Workspace subscription, the target resource is the Google Workspace resource that you monitor for events. The target resource is represented in the subscription's targetResource field, formatted using the full resource name. For example, for a subscription that monitors a Google Chat space ( spaces/AAAABBBBBBB ), the value of the targetResource is //chat.googleapis.com/spaces/AAAABBBBBBB .

Before you create the subscription, use the following sections to learn how to identify and format the target resource.

Identify a target resource for Chat

Target resource Формат Ограничения
Космос

//chat.googleapis.com/spaces/ SPACE

where SPACE is the ID in the resource name of the Chat API space resource. You can obtain the ID from the space's URL or using the spaces.list() method.

The Chat user that authorizes the subscription must be a member of the space through their Google Workspace or Google Account.
All spaces for a user

//chat.googleapis.com/spaces/-

The subscription only receives events for the spaces where the user is a member through their Google Workspace or Google Account.
Пользователь

//cloudidentity.googleapis.com/users/ USER

where USER is the ID in the resource name of the Chat API user resource. For details, see Identify and specify Google Chat users .

The subscription only receives events about the user that authorized the subscription. A user can't authorize a subscription on behalf of other users.

Identify a target resource for Meet

Target resource Формат Limitations (if applicable)
Meeting space //meet.googleapis.com/spaces/ SPACE

where SPACE is the ID in the resource name of the Meet REST API space resource. For details, see How Meet identifies a meeting space .

Пользователь //cloudidentity.googleapis.com/users/ USER

where USER is the ID in the signedinUser.user field of the Meet REST API participant resource. For details, see Work with participants .

The subscription receives events about meeting spaces where the user is one of the following:

  • The owner of the meeting space.
  • A participant in the meeting space.
  • The organizer of the Google Calendar event associated with the meeting space.

Create a Google Workspace subscription

To create a subscription, you use the Google Workspace Events API's subscriptions.create() method to create a Subscription resource. You specify the following fields:

  • targetResource : A Google Workspace that you identified in the previous section , formatted using its full resource name.
  • eventTypes : An array of one or more event types you want to receive about the resource. For example, if your app only needs to know about new messages posted to a Chat space, your app can just subscribe to events about created messages.
  • notificationEndpoint : A notification endpoint where your Google Workspace subscription delivers events. You use the Pub/Sub topic that you created in the previous section.
  • payloadOptions : Options to specify how much resource data to include in the event payload. This configuration affects the expiration time for your subscription. To learn more, see Event data .

To create a Google Workspace subscription:

Apps Script

  1. In your Apps Script project, create a new script file named createSubscription and add the following code:

    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 : The Google Workspace resource that you're subscribing to, formatted as its full resource name. For example, to subscribe to a Google Chat space with the space ID AAAABBBB , use //chat.googleapis.com/spaces/AAAABBBB .
    • EVENT_TYPES : One or more event types that you want to subscribe to in the target resource. Format as an array of strings such as 'google.workspace.chat.message.v1.created' .
    • TOPIC_NAME : The full name of the Pub/Sub topic that you created in your Cloud project. Formatted as projects/ PROJECT_ID /topics/ TOPIC_ID .
    • RESOURCE_DATA : A boolean that specifies whether the subscription includes resource data in the payload:

      • True : Includes all resource data. To limit which fields are included, add the fieldMask field and specify at least one field for the changed resource. Only subscriptions to Chat resources support including resource data.
      • False : Excludes resource data.
  2. To create the Google Workspace subscription, run the function createSubscription in your Apps Script project.

Питон

  1. In your working directory, create a file named create_subscription.py and add the following code:

    """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('client_secrets.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 : One or more OAuth scopes that support each event type for the subscription. Formatted as an array of strings. To list multiple scopes, separate by commas. For example, 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly' .
    • TARGET_RESOURCE : The Google Workspace resource that you're subscribing to, formatted as its full resource name. For example, to subscribe to a Google Chat space with the space ID AAAABBBB , use //chat.googleapis.com/spaces/AAAABBBB .
    • EVENT_TYPES : One or more event types that you want to subscribe to in the target resource. Format as an array of strings such as 'google.workspace.chat.message.v1.created' .
    • TOPIC_NAME : The full name of the Pub/Sub topic that you created in your Cloud project. Formatted as projects/ PROJECT_ID /topics/ TOPIC_ID .
    • RESOURCE_DATA : A boolean that specifies whether the subscription includes resource data in the payload:

      • True : Includes all resource data. To limit which fields are included, add the fieldMask field and specify at least one field for the changed resource. Only subscriptions to Chat resources support including resource data.
      • False : Excludes resource data.
  2. To create the Google Workspace subscription, run the following in your terminal:

    python3 create_subscription.py

The Google Workspace Events API returns a completed long-running operation that contains the instance of the Subscription resource that you created.

Test your Google Workspace subscription

To test that you're receiving Google Workspace events, you can trigger an event and pull messages to the Pub/Sub subscription.

To test your Google Workspace subscription:

Google Cloud console

  1. Trigger one or more types of events in the target resource of your Google Workspace subscription. For example, if you've subscribed to new messages in a Chat space, post a message to the space.

  2. In the Google Cloud console, go to the Pub/Sub page:

    Go to Pub/Sub

    Make sure that the Cloud project for your app is selected.

  3. In the Pub/Sub menu, click Subscriptions .

  4. In the table, find the Pub/Sub subscription for your topic and click the subscription name.

  5. Click the Messages tab.

  6. Click Pull . It can take up to a few minutes for an event to generate a Pub/Sub message.

gcloud

  1. Trigger one or more types of events in the target resource of your Google Workspace subscription. For example, if you've subscribed to new messages in a Chat space, post a message in the space.

  2. Выполните следующую команду:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    Замените следующее:

    • PUBSUB_SUBSCRIPTION_NAME : The full name of your Pub/Sub subscription, formatted as projects/ SUBSCRIPTION_ID /subscriptions/ SUBSCRIPTION_ID .
    • MESSAGE_COUNT : The maximum number of Pub/Sub messages you want to pull.

    It can take up to a few minutes for an event to generate a Pub/Sub message.

For each Google Workspace event that you triggered, a message is delivered to your Pub/Sub subscription that contains the event. For details, see Receiving events as Google Cloud Pub/Sub messages .

Configure how your app receives events

The Pub/Sub subscription that you created is pull-based. After you've tested that your Pub/Sub subscription, you can update the delivery type to change how your app receives events. For example, you can configure the Pub/Sub subscription to a push delivery type, so that your app can receive events directly to an app endpoint.

To learn about configuring a Pub/Sub subscription, see the Pub/Sub documentation .