Trovare uno spazio per i messaggi diretti

Questa guida spiega come utilizzare il metodo findDirectMessage nella Space dell'API Google Chat per ottenere i dettagli di uno spazio di messaggi diretti.

La Space risorsa rappresenta un luogo in cui le persone e le app di chat possono inviare messaggi, condividere file e collaborare. Esistono diversi tipi di spazi:

  • I messaggi diretti sono conversazioni tra due utenti o un utente e un'app di Chat.
  • Le chat di gruppo sono conversazioni tra tre o più utenti e App di chat.
  • Gli spazi con nome sono luoghi permanenti in cui le persone inviano messaggi, condividono file e collaborare.

Autenticazione con autenticazione app consente a un'app di Chat di ricevere i messaggi diretti L'app Chat ha accesso a in Google Chat (ad esempio, nei messaggi diretti di cui è membro). Autenticazione con l'autenticazione utente restituisce i messaggi diretti che utente autenticato a cui può accedere.

Prerequisiti

Python

  • Python 3.6 o versioni successive
  • Lo strumento di gestione dei pacchetti pip
  • Le librerie client di Google più recenti. Per installarle o aggiornarle, esegui questo comando nell'interfaccia a riga di comando:
    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    

Node.js

  • Node.js 14 o versioni successive
  • npm strumento di gestione dei pacchetti
  • Le librerie client di Google più recenti. Per installarle o aggiornarle, esegui questo comando nell'interfaccia a riga di comando:
    npm install @google-cloud/local-auth @googleapis/chat
    

Trova un messaggio diretto

Per trovare un messaggio diretto in Google Chat, trasmetti quanto segue in la tua richiesta:

  • Con l'autenticazione delle app, specifica il parametro Ambito dell'autorizzazione chat.bot. Con autenticazione degli utenti, specifica l'ambito dell'autorizzazione chat.spaces.readonly o chat.spaces.
  • Chiama il Metodo findDirectMessage sulla risorsa User, passando il name dell'altro utente nel messaggio diretto da tornare. Con autenticazione degli utenti, Questo metodo restituisce un messaggio diretto tra l'utente che chiama e quello specificato. Con autenticazione delle app, questo metodo restituisce un messaggio diretto tra l'app chiamante e l'utente specificato.
  • Per aggiungere un utente come membro dello spazio, specifica users/{user}, dove {user} è la {person_id} per person dell'API People o l'ID di un user nell'API Directory. Ad esempio, se la persona che si occupa dell'API People resourceName è people/123456789, puoi aggiungere l'utente allo spazio includendo una abbonamento con users/123456789 come member.name.

Trovare un messaggio diretto con l'autenticazione utente

Ecco come trovare un messaggio diretto con autenticazione utente:

Python

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

    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.spaces.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then returns details about a specified DM.
        '''
    
        # 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().findDirectMessage(
    
              # The other user in the direct message (DM) to return.
              #
              # Replace USER with a user name.
              name='users/USER'
    
          ).execute()
    
        # Prints details about the direct message.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Nel codice, sostituisci USER con il valore name di un User in Google Chat.

  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_space_find_dm_user.py
    

Node.js

  1. Nella directory di lavoro, crea un file denominato find-direct-message-space.js.

  2. Includi il seguente codice in find-direct-message-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. Nel codice, sostituisci USER con il valore name di un User in Google Chat.

  4. Nella directory di lavoro, esegui l'esempio:

    node find-direct-message-space.js
    

L'API Chat restituisce un'istanza Space che descrivono in dettaglio il messaggio diretto specificato.

Trovare un messaggio diretto con l'autenticazione delle app

Ecco come trovare un messaggio diretto con autenticazione app:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().findDirectMessage(
    
        # The other user in the direct message (DM) to return.
        #
        # Replace USER with a user name.
        name='users/USER'
    
    ).execute()
    
    print(result)
    
  3. Nel codice, sostituisci USER con il valore name di un User in Google Chat.

  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_space_find_dm_app.py
    

Node.js

  1. Nella directory di lavoro, crea un file denominato app-find-direct-message-space.js.

  2. Includi il seguente codice in app-find-direct-message-space.js:

    const chat = require('@googleapis/chat');
    
    /**
    * Find a direct message Chat space for a user.
    * @return {!Promise<!Object>}
    */
    async function findDirectMessageSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.bot',
      ];
    
      const auth = new chat.auth.GoogleAuth({
        scopes,
        keyFilename: 'credentials.json',
      });
    
      const authClient = await auth.getClient();
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.findDirectMessage(
          {name: 'users/USER'});
    }
    
    findDirectMessageSpace().then(console.log);
    
  3. Nel codice, sostituisci USER con il valore name di un User in Google Chat.

  4. Nella directory di lavoro, esegui l'esempio:

    node app-find-direct-message-space.js
    

L'API Chat restituisce un'istanza Space che descrive in dettaglio il messaggio diretto specificato.