Ottenere dettagli su un evento dello spazio di Google Chat

Questa guida spiega come utilizzare il metodo get nella SpaceEventrisorsa dell'API Google Chat per ottenere dettagli su un evento da uno spazio di Google Chat.

La risorsa SpaceEvent rappresenta una modifica a uno spazio o alle relative risorse figlio, come messaggi, reazioni e iscrizioni. Per scoprire di più sui tipi di eventi supportati, consulta il campo eventType della documentazione di riferimento per le risorse SpaceEvent.

Puoi richiedere eventi fino a 28 giorni prima dell'ora della richiesta. L'evento contiene la versione più recente della risorsa modificata. Ad esempio, se richiedi un evento relativo a un nuovo messaggio, ma quest'ultimo è stato aggiornato in un secondo momento, il server restituisce la risorsa Message aggiornata nel payload dell'evento.

Per chiamare questo metodo, devi utilizzare l'autenticazione dell'utente. Per ricevere un evento, l'utente autenticato deve essere membro dello spazio in cui si è verificato.

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. Per ottenere un evento dello spazio è necessaria l'autenticazione utente con un ambito che supporta il tipo di evento. Per scegliere un ambito, consulta la panoramica di Autenticazione e autorizzazione.

Ricevere dettagli su un evento spaziale

Per ottenere dettagli su un SpaceEvent in Google Chat, segui questi passaggi:

  • Chiama il metodo get sulla risorsa SpaceEvent.
  • Supera name del SpaceEvent per vincere. Ottieni il nome SpaceEvent dalla risorsa SpaceEvent di Google Chat.
  • Con autenticazione utente, specifica un ambito di autorizzazione che supporta il tipo di evento nella richiesta. Come best practice, scegli l'ambito più restrittivo che consente comunque alla tua app di funzionare.

Ecco come ottenere un SpaceEvent con l'autenticazione utente:

Python

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

    """Gets a SpaceEvent resource 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 = ['SCOPE']
    
    # 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()
        .get(
            # The space event to get.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace SPACE_EVENT with a SpaceEvent name.
            # Obtain the spaceEvent name from the SpaceEvent resource of
            # Chat API.
            name='spaces/SPACE/spaceEvents/SPACE_EVENT'
        )
        .execute()
    )
    
    # Prints details about the created spaceEvent.
    print(result)
    
  3. Sostituisci quanto segue nel codice:

    • SCOPE: un ambito di autorizzazione basato sul tipo di evento. Ad esempio, se ricevi un evento spaziale relativo a una nuova appartenenza, utilizza l'ambito chat.memberships.readonly, formattato come https://www.googleapis.com/auth/chat.memberships.readonly. Puoi ottenere il tipo di evento dal metodo spaces.spaceEvents.list. Per scoprire come utilizzare questo metodo, consulta Elencare gli eventi da uno spazio.
    • SPACE: il nome di uno spazio, che puoi ottenere dal metodo spaces.list nell'API Chat o dall'URL di uno spazio.
    • SPACE_EVENT: il nome dell'evento spazio, che puoi ottenere dal metodo spaces.spaceEvents.list.
  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_space_event_get.py
    

L'API Chat restituisce un'istanza di SpaceEvent con i dettagli dell'evento.