Elencare gli eventi da uno spazio di Google Chat

Questa guida spiega come utilizzare il metodo list nella risorsa SpaceEvent dell'API Google Chat per elencare le modifiche alle risorse in uno spazio.

La risorsa SpaceEvent rappresenta una modifica allo spazio di destinazione, incluse le risorse figlio dello spazio come messaggi, reazioni e iscrizioni. Per ulteriori informazioni sull'elenco dei tipi di eventi e dei payload di eventi supportati, consulta i campi eventType e payload della documentazione di riferimento della risorsa SpaceEvent.

Puoi elencare gli eventi fino a 28 giorni prima dell'ora della richiesta. Il server restituisce eventi che contengono la versione più recente della risorsa interessata. Ad esempio, se elenchi eventi relativi ai nuovi membri dello spazio, il server restituisce le risorse Membership contenenti i dettagli dell'iscrizione più recenti. Se durante il periodo richiesto sono stati rimossi nuovi membri, il payload dell'evento contiene una risorsa Membership vuota.

Per chiamare questo metodo, devi utilizzare l'autenticazione dell'utente. Per elencare gli eventi di uno spazio, l'utente autenticato deve essere membro dello spazio.

Prerequisiti

Python

  • Python 3.6 o versioni successive
  • Lo strumento di gestione dei pacchetti pip
  • Le librerie client di Google più recenti per Python. Per installarli o aggiornarli, esegui questo comando nell'interfaccia a riga di comando:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Un progetto Google Cloud in cui l'API Google Chat è abilitata e configurata. Per i passaggi da seguire, consulta Creare un'app Google Chat.
  • Autorizzazione configurata per l'app di Chat. L'elenco delle risorse SpaceEvent supporta i seguenti metodi di autenticazione:

Elenca eventi dello spazio

Per elencare gli eventi di uno spazio di Chat, segui questi passaggi:

Nel seguente esempio di codice, elenchi gli eventi relativi a nuove iscrizioni e messaggi in uno spazio.

Python

  1. Nella directory di lavoro, crea un file denominato chat_space_event_list.py.
  2. Includi il seguente codice in chat_space_event_list.py:

    """Lists SpaceEvent resources from the Chat API."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.memberships.readonly",
    "https://www.googleapis.com/auth/chat.messages.readonly"]
    
    # Authenticate with Google Workspace
    # and get user authorization.
    flow = InstalledAppFlow.from_client_secrets_file(
                'client_secrets.json', SCOPES)
    creds = flow.run_local_server()
    
    # 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().list(
    
        # The space from which to list events.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # A required filter. Filters and returns events about new memberships and messages
        filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"'
    
    ).execute()
    
    # Prints details about the created space events.
    print(result)
    
  3. Sostituisci quanto segue nel codice:

    • SPACE: il nome di uno spazio, che puoi ottenere dal metodo spaces.list nell'API Chat o dall'URL di uno spazio.
  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_space_event_list.py
    

L'API Chat restituisce un elenco di eventi delle risorse di SpaceEvent relativi alle nuove iscrizioni e ai nuovi messaggi.

Personalizza l'impaginazione

Facoltativamente, trasmetti i seguenti parametri di query per personalizzare l'impaginazione:

  • pageSize: il numero massimo di SpaceEvent risorse da restituire. Il servizio potrebbe restituire meno di questo valore. I valori negativi restituiscono un errore INVALID_ARGUMENT.
  • pageToken: un token di pagina, ricevuto da una precedente chiamata di eventi dello spazio per l'elenco. Fornisci questo token per recuperare la pagina successiva. Durante l'impaginazione, il valore del filtro deve corrispondere alla chiamata che ha fornito il token della pagina. La trasmissione di un valore diverso potrebbe portare a risultati imprevisti.