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 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 dokumentacji referencyjnej SpaceEvent.

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 zdarzenia.

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

Sprawdzanie szczegółów wydarzenia 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 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 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.

Sprawdzanie szczegółów wydarzenia w pokoju (uwierzytelnianie aplikacji Chat)

Uwierzytelnianie aplikacji wymaga jednorazowego zatwierdzenia przez administratora.

Aby uzyskać szczegółowe informacje o zdarzeniu w przestrzeni z uwierzytelnianiem aplikacji za pomocą interfejsu 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 wybranie 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.messages.readonly
    • https://www.googleapis.com/auth/chat.app.spaces
  • Wywołaj metodę getspaceEventszasobie.
  • Przekaż name pokoju, z którego chcesz uzyskać szczegóły wydarzenia.

Tworzenie klucza interfejsu API

Aby wywołać metodę interfejsu API wersji przedpremierowej dla programistów, musisz użyć niepublicznej wersji przedpremierowej dokumentu wykrywania interfejsu API. Aby uwierzytelnić żądanie, musisz przekazać klucz interfejsu API.

Aby utworzyć klucz interfejsu API, otwórz projekt Google Cloud swojej aplikacji i wykonaj te czynności:

  1. W konsoli Google Cloud otwórz Menu  > Interfejsy API i usługi > Dane logowania.

    Przejdź do danych logowania

  2. Kliknij Utwórz dane logowania > Klucz interfejsu API.
  3. Wyświetli się nowy klucz interfejsu API.
    • Kliknij Kopiuj , aby skopiować klucz interfejsu API do użycia w kodzie aplikacji. Klucz interfejsu API można też znaleźć w sekcji „Klucze interfejsu API” w danych logowania projektu.
    • Aby można było zapobiec nieautoryzowanemu użyciu, zalecamy ograniczenie miejsc i interfejsów API, w których można używać klucza API. Więcej informacji znajdziesz w sekcji Dodawanie ograniczeń interfejsu API.

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.readonly` 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.messages.readonly",
              "https://www.googleapis.com/auth/chat.app.spaces"]
    
    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, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # 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:

    • API_KEY: klucz interfejsu API utworzony do budowania punktu końcowego usługi dla interfejsu Chat API.
    • SPACE_NAME: nazwa pokoju, którą możesz uzyskać za pomocą spaces.listmetody w interfejsie Chat API 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.
  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_spaceevents_get_app.py

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