Uzyskiwanie szczegółów o wydarzeniu w pokoju Google Chat

Z tego przewodnika dowiesz się, jak używać metody get() w zasobie SpaceEvent interfejsu Google Chat API, aby uzyskać szczegółowe informacje o zdarzeniu z pokoju Google Chat.

Zasób SpaceEvent reprezentuje zmianę w pokoju lub jego zasobach podrzędnych, takich jak wiadomości, reakcje i członkostwo. Więcej informacji o obsługiwanych typach zdarzeń znajdziesz w polu eventType zasobu SpaceEventdokumentacji referencyjnej.

Możesz poprosić o zdarzenia do 28 dni przed czasem żądania. Zdarzenie zawiera najnowszą wersję zmienionego zasobu. Jeśli na przykład poprosisz o zdarzenie dotyczące nowej wiadomości, ale wiadomość została później zaktualizowana, serwer zwróci zaktualizowany zasób Message w ładunku zdarzenia.

Aby wywołać tę metodę, musisz użyć uwierzytelniania użytkownika. Aby uzyskać zdarzenie, uwierzytelniony użytkownik musi być członkiem pokoju, w którym wystąpiło zdarzenie.

Wymagania wstępne

Node.js

Python

Pobieranie szczegółowych informacji o zdarzeniu w pokoju (uwierzytelnianie użytkownika)

Aby uzyskać szczegółowe informacje o zdarzeniu w pokoju w Google Chat, w żądaniu podaj te informacje:

  • Określ zakres autoryzacji, który obsługuje typ zdarzenia w żądaniu. Zalecamy wybranie najbardziej restrykcyjnego zakresu, który nadal umożliwia działanie aplikacji.
  • Wywołaj metodę GetSpaceEvent() , przekazując name zdarzenia w pokoju, które chcesz pobrać.

Poniższy przykład pobiera zdarzenie w pokoju:

Node.js

Ten przykładowy kod w Node.js korzysta z interfejsu Chat RPC API.

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();

Aby uruchomić ten przykład, zastąp te elementy:

  • SCOPE_NAME: zakres autoryzacji na podstawie typu zdarzenia. Jeśli na przykład pobierasz zdarzenie w pokoju dotyczące nowego członkostwa, użyj zakresu chat.memberships.readonly w formacie https://www.googleapis.com/auth/chat.memberships.readonly. Typ zdarzenia możesz uzyskać za pomocą ListSpaceEvents() metody. Więcej informacji o korzystaniu z tej metody znajdziesz w artykule Wyświetlanie listy zdarzeń z pokoju.
  • SPACE_NAME: identyfikator z pokoju name. Identyfikator możesz uzyskać, wywołując ListSpaces() metodę lub z adresu URL pokoju.
  • SPACE_EVENT_NAME: identyfikator z zdarzenia w pokojuname. Identyfikator możesz uzyskać za pomocą ListSpaceEvents() metody. Więcej informacji o korzystaniu z tej metody znajdziesz w artykule Wyświetlanie listy zdarzeń z pokoju.

Interfejs Chat API zwraca instancję SpaceEvent ze szczegółowymi informacjami o zdarzeniu.

Pobieranie szczegółowych informacji o zdarzeniu w pokoju (uwierzytelnianie aplikacji do obsługi czatu)

Uwierzytelnianie aplikacji wymaga jednorazowego zatwierdzenia przez administratora.

Aby uzyskać szczegółowe informacje o zdarzeniu w pokoju z uwierzytelnianiem aplikacji za pomocą interfejsu Chat REST API, w żądaniu podaj te informacje:

  • Określ co najmniej 1 zakres autoryzacji, który obsługuje każdy typ zdarzenia w żądaniu. Zalecamy wybranie najbardziej restrykcyjnego zakresu, który nadal umożliwia działanie aplikacji. Więcej informacji o wyborze zakresu znajdziesz w artykule Omówienie uwierzytelniania i autoryzacji.
    • 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
  • Wywołaj metodę get w zasobie spaceEvents.
  • Przekaż name pokoju, z którego chcesz pobrać szczegóły zdarzenia.

Napisz skrypt, który wywołuje interfejs Chat API

Oto jak uzyskać szczegółowe informacje o zdarzeniu w pokoju za pomocą uwierzytelniania aplikacji i interfejsu Chat REST API:

Python

Ten przykładowy kod w Pythonie korzysta z interfejsu Chat REST API.

  1. W katalogu roboczym utwórz plik o nazwie chat_spaceevents_get_app.py.
  2. W pliku chat_spaceevents_get_app.py umieść ten kod:

    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. W kodzie zastąp te elementy:

  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_spaceevents_get_app.py

Interfejs Chat API zwraca listę stronnicowaną zdarzeń w pokoju dotyczących nowych członkostw i wiadomości.