Получение списка событий из чата Google

В этом руководстве объясняется, как использовать метод list в ресурсе SpaceEvent API Google Chat для получения списка изменений ресурсов в пространстве.

Ресурс SpaceEvent представляет собой изменение целевого пространства, включая дочерние ресурсы пространства, такие как сообщения, реакции и членство. Дополнительные сведения о списке типов событий и поддерживаемых полезных данных событий см. в полях eventType и payload справочной документации по ресурсам SpaceEvent .

Вы можете перечислить события, произошедшие за 28 дней до момента запроса. Сервер возвращает события, содержащие самую последнюю версию затронутого ресурса. Например, если вы перечислите события о новых участниках пространства, сервер вернет ресурсы Membership , содержащие последние сведения о членстве. Если новые участники были удалены в течение запрошенного периода, полезные данные события будут содержать пустой ресурс Membership .

Для вызова этого метода необходимо использовать аутентификацию пользователя . Чтобы составить список событий из пространства, аутентифицированный пользователь должен быть членом пространства.

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

Питон

  • Python 3.6 или выше
  • Инструмент управления пакетами pip
  • Новейшие клиентские библиотеки Google для Python. Чтобы установить или обновить их, выполните следующую команду в интерфейсе командной строки:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Проект Google Cloud с включенным и настроенным API Google Chat. Инструкции см. в разделе Создание приложения Google Chat .
  • Авторизация настроена для приложения Чат. Список ресурсов SpaceEvent поддерживает следующие методы аутентификации:

Список космических событий

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

  • Вызовите метод list ресурса SpaceEvent .
  • Укажите, какие типы событий следует перечислить, используя поле filter . Вы должны указать хотя бы один тип события, а также можете фильтровать по дате. Список поддерживаемых типов событий см. в поле eventType .
  • При аутентификации пользователя укажите одну или несколько областей авторизации для поддержки каждого типа событий в вашем запросе. Рекомендуется выбирать наиболее ограничительную область, которая по-прежнему позволяет вашему приложению функционировать. Чтобы выбрать область, см. Обзор аутентификации и авторизации .

В следующем примере кода вы перечислите события о новом членстве и сообщениях в пространстве.

Питон

  1. В своем рабочем каталоге создайте файл с chat_space_event_list.py .
  2. Включите следующий код в chat_space_event_list.py :

    """Lists SpaceEvent resources from the Chat API."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.memberships.readonly",
    "https://www.googleapis.com/auth/chat.messages.readonly"]
    
    # Authenticate with Google Workspace
    # and get user authorization.
    flow = InstalledAppFlow.from_client_secrets_file(
                'client_secrets.json', SCOPES)
    creds = flow.run_local_server()
    
    # Build a service endpoint for Chat API.
    chat = build(
      'chat',
      'v1',
      credentials=creds,
    )
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().spaceEvents().list(
    
        # The space from which to list events.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # A required filter. Filters and returns events about new memberships and messages
        filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"'
    
    ).execute()
    
    # Prints details about the created space events.
    print(result)
    
  3. В коде замените следующее:

    • SPACE : имя пространства, которое можно получить с помощью метода spaces.list в Chat API или из URL-адреса пространства.
  4. В своем рабочем каталоге соберите и запустите пример:

    python3 chat_space_event_list.py
    

API чата возвращает список событий ресурсов SpaceEvent о новых членствах и сообщениях.

Настроить нумерацию страниц

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

  • pageSize : максимальное количество возвращаемых ресурсов SpaceEvent . Служба может вернуть меньше этого значения. Отрицательные значения возвращают ошибку INVALID_ARGUMENT .
  • pageToken : токен страницы, полученный в результате предыдущего вызова событий пространства списка. Предоставьте этот токен для получения следующей страницы. При разбиении на страницы значение фильтра должно соответствовать вызову, который предоставил токен страницы. Передача другого значения может привести к неожиданным результатам.