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 wydarzeniu w pokoju czatu Google Chat.

SpaceEventZasób reprezentuje zmianę w pokoju lub jego zasobach podrzędnych, takich jak wiadomości, reakcje i informacje o osobach w pokoju. Informacje o obsługiwanych typach zdarzeń znajdziesz w polu eventType zasobu SpaceEvent w dokumentacji referencyjnej.

Możesz poprosić o wydarzenia, które miały miejsce maksymalnie 28 dni przed przesłaniem prośby. Zdarzenie zawiera najnowszą wersję zmienionego zasobu. Jeśli na przykład poprosisz o wydarzenie dotyczące nowej wiadomości, ale wiadomość zostanie później zaktualizowana, serwer zwróci zaktualizowany zasób Message w ładunku wydarzenia.

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

Wymagania wstępne

Node.js

Python

Uzyskiwanie szczegółowych informacji o zdarzeniu w przestrzeni (uwierzytelnianie użytkownika)

Aby uzyskać szczegółowe informacje o wydarzeniu w pokoju w Google Chat, w żądaniu przekaż te dane:

  • W żądaniu określ zakres autoryzacji, który obsługuje typ zdarzenia. 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ć.

W tym przykładzie pobieramy zdarzenie dotyczące przestrzeni:

Node.js

Ten przykładowy kod 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 oparty na typie zdarzenia. Jeśli na przykład otrzymujesz zdarzenie dotyczące pokoju o nowym członkostwie, użyj zakresu chat.memberships.readonly w formacie https://www.googleapis.com/auth/chat.memberships.readonly. Typ zdarzenia możesz uzyskać za pomocą metody ListSpaceEvents(). Aby dowiedzieć się, jak korzystać z tej metody, przeczytaj artykuł Wyświetlanie listy wydarzeń w pokoju.
  • SPACE_NAME: identyfikator z przestrzeni name. Możesz go uzyskać, wywołując metodę ListSpaces() lub z adresu URL pokoju.
  • SPACE_EVENT_NAME: identyfikator z name zdarzenia w pokoju. Możesz go uzyskać za pomocą metody ListSpaceEvents(). Aby dowiedzieć się, jak korzystać z tej metody, przeczytaj artykuł Wyświetlanie listy wydarzeń w pokoju.

Interfejs Chat API zwraca instancję SpaceEvent zawierającą szczegóły zdarzenia.

Uzyskiwanie szczegółowych informacji o zdarzeniu w pokoju (uwierzytelnianie aplikacji Google Chat)

Uwierzytelnianie aplikacji wymaga jednorazowego zatwierdzenia przez administratora.

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

  • Określ co najmniej 1 zakres autoryzacji, aby obsługiwać każdy typ zdarzenia w swoim żądaniu. Zalecamy wybór najbardziej restrykcyjnego zakresu, który nadal umożliwia działanie aplikacji. Więcej informacji o wybieraniu 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ę getspaceEventszasobie.
  • Przekaż name pokoju, z którego chcesz uzyskać szczegóły wydarzenia.

Napisz skrypt, który wywołuje Chat API

Aby uzyskać szczegółowe informacje o wydarzeniu w przestrzeni za pomocą uwierzytelniania aplikacji i interfejsu Chat REST API, wykonaj te czynności:

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. Dodaj do pliku chat_spaceevents_get_app.py 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 stronicowaną listę zdarzeń w pokoju dotyczących nowych członkostw i wiadomości.