В этом руководстве объясняется, как использовать метод list() ресурса SpaceEvent из Google Chat API для отображения изменений ресурсов в пространстве.
Ресурс SpaceEvent представляет собой изменение целевого пространства, включая дочерние ресурсы этого пространства, такие как сообщения, реакции и членство. Для получения дополнительной информации о списке поддерживаемых типов событий и полезных нагрузок событий см. поля eventType и payload в справочной документации по ресурсу SpaceEvent .
Вы можете перечислить события за период до 28 дней до момента запроса. Сервер возвращает события, содержащие самую последнюю версию затронутого ресурса. Например, если вы перечисляете события о новых участниках пространства, сервер возвращает ресурсы Membership , содержащие последние сведения о членстве. Если новые участники были удалены в течение запрошенного периода, полезная нагрузка события будет содержать пустой ресурс Membership .
Для отображения событий из пространства авторизованный пользователь или приложение чата должны быть участниками этого пространства.
Предварительные требования
Node.js
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект в Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения чата.
- Установите библиотеку Node.js Cloud Client .
- Создайте учетные данные доступа в зависимости от того, как вы хотите аутентифицироваться в запросе к Google Chat API:
- Для аутентификации в качестве пользователя чата создайте учетные данные OAuth-клиента и сохраните их в виде JSON-файла с именем
credentials.jsonв локальной директории. - Для аутентификации в приложении «Чат» создайте учетные данные сервисной учетной записи и сохраните их в JSON-файле с именем
credentials.json.
- Для аутентификации в качестве пользователя чата создайте учетные данные OAuth-клиента и сохраните их в виде JSON-файла с именем
- Выберите область авторизации в зависимости от того, хотите ли вы аутентифицироваться как пользователь или как приложение чата.
Python
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект в Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения чата.
- Установите библиотеку Python Cloud Client .
- Создайте учетные данные доступа в зависимости от того, как вы хотите аутентифицироваться в запросе к Google Chat API:
- Для аутентификации в качестве пользователя чата создайте учетные данные OAuth-клиента и сохраните их в виде JSON-файла с именем
credentials.jsonв локальной директории. - Для аутентификации в приложении «Чат» создайте учетные данные сервисной учетной записи и сохраните их в JSON-файле с именем
credentials.json.
- Для аутентификации в качестве пользователя чата создайте учетные данные OAuth-клиента и сохраните их в виде JSON-файла с именем
- Выберите область авторизации в зависимости от того, хотите ли вы аутентифицироваться как пользователь или как приложение чата.
Список событий в пространстве (аутентификация пользователя)
Чтобы вывести список событий в чате, передайте в запросе следующее:
Укажите одну или несколько областей авторизации для поддержки каждого типа событий в вашем запросе. В качестве рекомендации выбирайте наиболее ограничительную область, которая при этом позволяет вашему приложению функционировать. Чтобы выбрать область, см. раздел «Обзор аутентификации и авторизации» .
Вызовите метод
ListSpaceEvents(), передав в списокfilterтипов событий. Необходимо указать как минимум один тип события, также можно фильтровать по дате. Список поддерживаемых типов событий см. в полеeventTypeсправочной документации по ресурсамSpaceEvent.
В следующем примере перечислены события, связанные с новыми членствами и сообщениями в пространстве:
Node.js
Для запуска этого примера замените SPACE_NAME на идентификатор из name пространства. Вы можете получить идентификатор, вызвав метод ListSpaces() или из URL-адреса пространства.
API чата возвращает список событий в пространстве, отображаемый с постраничной разбивкой, касающихся новых членств и сообщений.
Список событий в пространстве (аутентификация в чат-приложении)
Для аутентификации приложения требуется одноразовое подтверждение администратора .
Чтобы получить список событий в пространстве с использованием аутентификации приложения и REST API чата , передайте в запросе следующее:
- Укажите одну или несколько областей авторизации для поддержки каждого типа событий в вашем запросе. В качестве рекомендации выбирайте наиболее ограничительную область, которая при этом позволяет вашему приложению функционировать. Более подробную информацию о выборе области см. в разделе «Обзор аутентификации и авторизации» .
-
https://www.googleapis.com/auth/chat.app.memberships -
https://www.googleapis.com/auth/chat.app.memberships.readonly -
https://www.googleapis.com/auth/chat.app.messages.readonly -
https://www.googleapis.com/auth/chat.app.spaces -
https://www.googleapis.com/auth/chat.app.spaces.readonly
-
- Вызовите метод
listресурса `spaceEvents. - Укажите
nameпространства, из которого нужно вывести список сообщений. - Передайте
filterдля запроса определенных типов событий.
Напишите скрипт, который вызывает API чата.
Вот как можно вывести список событий в пространстве с использованием аутентификации приложения и REST API чата :
Python
- В рабочей директории создайте файл с именем
chat_spaceevents_list_app.py. Добавьте следующий код в
chat_spaceevents_list_app.py:from google.oauth2 import service_account from apiclient.discovery import build # Define your app's authorization scopes. # Set authorization scopes based on the # event type. For example, if you are getting a space event # about a new membership, use the `chat.app.memberships` scope. # # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships", "https://www.googleapis.com/auth/chat.app.memberships.readonly", "https://www.googleapis.com/auth/chat.app.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces", "https://www.googleapis.com/auth/chat.app.spaces.readonly"] def main(): ''' Authenticates with Chat API using app authentication, then lists space events from a specified space. ''' # Specify service account details. creds = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # 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 to list events from. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE_NAME', # A required filter. Filters events by event type. # # Update this filter to match your requirements. filter='eventTypes:"google.workspace.chat.message.v1.created"' ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()В коде замените следующее:
-
SPACE_NAME: имя пространства, которое можно получить из методаspaces.listв API чата или из URL-адреса пространства.
-
В рабочей директории соберите и запустите пример:
python3 chat_spaceevents_list_app.py
API чата возвращает список событий в пространстве, отсортированный по страницам, касающихся новых членств и сообщений.