Получите подробную информацию о мероприятии в Google Chat

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

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

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

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

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

Node.js

Python

Получите подробную информацию о событии в космосе (аутентификация пользователя).

Чтобы получить подробную информацию о космическом событии в Google Chat, передайте в запросе следующее:

  • Укажите в запросе область авторизации, поддерживающую данный тип события. В качестве рекомендации выбирайте наиболее ограничительную область, которая при этом позволяет вашему приложению функционировать.
  • Вызовите метод GetSpaceEvent() , передав ему name космического события, которое нужно получить.

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

Node.js

В этом примере кода на Node.js используется API Chat RPC .

chat/client-libraries/cloud/get-space-event-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

// Replace SCOPE_NAME here with an authorization scope based on the event type
const USER_AUTH_OAUTH_SCOPES = ['SCOPE_NAME'];

// This sample shows how to get space event with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME and SPACE_EVENT_NAME here
    name: 'spaces/SPACE_NAME/spaceEvents/SPACE_EVENT_NAME',
  };

  // Make the request
  const response = await chatClient.getSpaceEvent(request);

  // Handle the response
  console.log(response);
}

await main();

Для запуска этого примера замените следующее:

  • 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 чата .

  1. В рабочей директории создайте файл с именем chat_spaceevents_get_app.py .
  2. Включите следующий код в 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()
    
  3. В коде замените следующее:

  4. В рабочей директории соберите и запустите пример:

    python3 chat_spaceevents_get_app.py

API чата возвращает список событий в пространстве, отсортированный по страницам, касающихся новых членств и сообщений.