В этом руководстве объясняется, как использовать метод get() ресурса SpaceEvent API Google Chat для получения подробной информации о событии из пространства Google Chat.
Ресурс SpaceEvent представляет собой изменение пространства или его дочерних ресурсов, таких как сообщения, реакции и членство. Чтобы узнать о поддерживаемых типах событий, см. поле eventType в справочной документации по ресурсу SpaceEvent .
Вы можете запрашивать события за период до 28 дней до момента запроса. Событие содержит самую последнюю версию ресурса, которая изменилась. Например, если вы запрашиваете событие о новом сообщении, но сообщение впоследствии было обновлено, сервер вернет обновленный ресурс Message в полезной нагрузке события.
Для вызова этого метода необходимо использовать аутентификацию пользователя . Чтобы получить событие, аутентифицированный пользователь должен быть членом пространства, где произошло событие.
Предварительные требования
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-файла с именем
- Выберите область авторизации в зависимости от того, хотите ли вы аутентифицироваться как пользователь или как приложение чата.
Получите подробную информацию о событии в космосе (аутентификация пользователя).
Чтобы получить подробную информацию о космическом событии в Google Chat, передайте в запросе следующее:
- Укажите в запросе область авторизации, поддерживающую данный тип события. В качестве рекомендации выбирайте наиболее ограничительную область, которая при этом позволяет вашему приложению функционировать.
- Вызовите метод
GetSpaceEvent(), передав емуnameкосмического события, которое нужно получить.
В следующем примере регистрируется событие, связанное с космическим пространством:
Node.js
В этом примере кода на Node.js используется API Chat RPC .
Для запуска этого примера замените следующее:
-
SCOPE_NAME: область авторизации, основанная на типе события. Например, если вы получаете событие пространства о новом членстве, используйте областьchat.memberships.readonly, отформатированную какhttps://www.googleapis.com/auth/chat.memberships.readonly. Тип события можно получить из методаListSpaceEvents(). Чтобы узнать, как использовать этот метод, см. раздел «Список событий из пространства» . -
SPACE_NAME: идентификатор изnameпространства. Вы можете получить идентификатор, вызвав методListSpaces()или из URL-адреса пространства. -
SPACE_EVENT_NAME:nameсобытия из пространства. Вы можете получить идентификатор из методаListSpaceEvents(). Чтобы узнать, как использовать этот метод, см. раздел «Список событий из пространства» .
API чата возвращает экземпляр объекта SpaceEvent с подробной информацией о событии.
Получите подробную информацию о космическом событии (аутентификация в чат-приложении).
Для аутентификации приложения требуется одноразовое подтверждение администратора .
Чтобы получить подробную информацию о событии в пространстве с использованием аутентификации приложения через 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
-
- Вызовите метод
getдля ресурса `spaceEvents. - Укажите
nameпомещения, из которого нужно получить подробную информацию о мероприятии.
Напишите скрипт, который вызывает API чата.
Вот как получить подробную информацию о событии, связанном с космическим пространством, с помощью аутентификации приложения и REST API чата :
Python
В этом примере кода на Python используется REST API чата .
- В рабочей директории создайте файл с именем
chat_spaceevents_get_app.py. Включите следующий код в
chat_spaceevents_get_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().get( # The space to get event details 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. name='spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME', ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()В коде замените следующее:
-
SPACE_NAME: имя пространства, которое можно получить из методаspaces.listв API чата или из URL-адреса пространства. -
SPACE_EVENT_NAME:nameсобытия из пространства. Вы можете получить идентификатор из методаListSpaceEvents(). Чтобы узнать, как использовать этот метод, см. раздел «Список событий из пространства» .
-
В рабочей директории соберите и запустите пример:
python3 chat_spaceevents_get_app.py
API чата возвращает список событий в пространстве, отсортированный по страницам, касающихся новых членств и сообщений.