Configurare uno spazio con membri iniziali

Questa guida spiega come utilizzare il metodo setup nella risorsa Space dell'API Google Chat per configurare uno spazio di Google Chat. La configurazione di uno spazio crea uno spazio al quale aggiungere utenti specifici.

La risorsa Space 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 collaborano.

Quando configuri uno spazio, considera quanto segue:

  • L'utente chiamante (autenticato) viene aggiunto automaticamente allo spazio, quindi non è necessario specificare l'appartenenza dell'utente nella richiesta.
  • Quando crei un messaggio diretto, se esiste un messaggio diretto tra due utenti, viene restituito il messaggio diretto. In caso contrario, viene creato un messaggio diretto.
  • Quando crei una chat di gruppo, se nessuna delle iscrizioni fornite nella richiesta viene aggiunta alla chat di gruppo (ad esempio, un problema di autorizzazione), potrebbe essere creata una chat di gruppo vuota (che include solo l'utente che chiama).
  • Non puoi configurare spazi con risposte in thread o aggiungere persone esterne a Google Workspace.
  • Le iscrizioni duplicate (incluso l'utente che ha chiamato) fornite nella richiesta vengono filtrate invece di generare un errore nella richiesta.

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 con l'API Google Chat abilitata e configurata. Per i passaggi da seguire, vedi Creare un'app Google Chat.
  • Autorizzazione configurata per l'app Chat. Per configurare uno spazio è necessaria l'autenticazione dell'utente con l'ambito dell'autorizzazione chat.spaces.create o chat.spaces.

Node.js

  • Node.js e npm
  • Le librerie client di Google più recenti per Node.js. Per installarle, esegui questo comando nell'interfaccia a riga di comando:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Un progetto Google Cloud con l'API Google Chat abilitata e configurata. Per i passaggi da seguire, vedi Creare un'app Google Chat.
  • Autorizzazione configurata per l'app Chat. La creazione di uno spazio richiede l'autenticazione dell'utente con l'ambito di autorizzazione chat.spaces.create o chat.spaces.

Configura uno spazio

Per configurare uno spazio, trasmetti quanto segue nella richiesta:

  • Specifica l'ambito dell'autorizzazione chat.spaces.create o chat.spaces.
  • Chiama il metodo setup sulla risorsa Space.
  • Per aggiungere un utente umano come membro dello spazio, specifica users/{user}, dove {user} è il {person_id} per person dall'API People o l'ID di un user nell'API Directory. Ad esempio, se la persona dell'API People resourceName è people/123456789, puoi aggiungere l'utente allo spazio includendo un'iscrizione con users/123456789 come member.name.
  • Per aggiungere un gruppo come membro dello spazio, specifica groups/{group}, dove {group} è l'ID gruppo per cui vuoi creare l'appartenenza. L'ID per il gruppo può essere recuperato utilizzando l'API Cloud Identity. Ad esempio, se l'API Cloud Identity restituisce un gruppo con il nome groups/123456789, imposta membership.groupMember.name su groups/123456789. I gruppi Google non possono essere aggiunti a una chat di gruppo o a un messaggio diretto, ma solo a uno spazio denominato.
  • Per creare un messaggio diretto tra l'utente che chiama e un altro utente umano, specifica nella richiesta l'appartenenza dell'utente umano.
  • Per creare un messaggio diretto tra l'utente che chiama e l'app per la chiamata, imposta Space.singleUserBotDm su true e non specificare alcuna iscrizione. Puoi utilizzare questo metodo solo per configurare un messaggio diretto con l'app per la chiamata. Per aggiungere l'app per la chiamata come membro di uno spazio o un messaggio diretto esistente tra due utenti umani, consulta Creare un abbonamento.

L'esempio seguente crea uno spazio denominato e crea iscrizioni allo spazio per un gruppo e tre utenti umani (inclusi l'utente autenticato e altri due utenti specificati).

Python

  1. Nella directory di lavoro, crea un file denominato chat_space_setup.py.
  2. Includi il seguente codice in chat_space_setup.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.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then sets up a Chat space by creating a space and adding members.
        '''
    
        # 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().setup(
    
          # Details about the space to set up.
          body = {
    
            # Attributes of the space to set up, like space type and display name.
            'space': {
    
                # To set up a named space, set spaceType to SPACE.
                'spaceType': 'SPACE',
    
                # The user-visible name of the space
                'displayName': 'API-setup'
            },
    
            # The users and groups to add to the space.
            #
            # The authenticated user is automatically added to the space,
            # and doesn't need to be specified in the memberships array.
            'memberships': [
                {
                  'member': {
                    'name':'users/123456789',
                    'type': 'HUMAN'
                  }
                },
                {
                  'member': {
                    'name':'users/987654321',
                    'type': 'HUMAN'
                  }
                },
                {
                  'groupMember': {
                    'name': 'groups/11223344'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_space_setup.py
    

Node.js

  1. Nella directory di lavoro, crea un file denominato setup-space.js.
  2. Includi il seguente codice in setup-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Sets up a new Chat space with users.
    * @return {!Promise<!Object>}
    */
    async function setupSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.create',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.setup({
        requestBody: {
          space: {
            spaceType: 'SPACE',
            displayName: 'API-made',
          },
          memberships: [
            {member: {name: 'users/123456789', type: 'HUMAN'}},
            {member: {name: 'users/987654321', type: 'HUMAN'}},
            {groupMember: {name: 'groups/11223344'}},
          ]
        }
      });
    }
    
    setupSpace().then(console.log);
    
  3. Nella directory di lavoro, esegui l'esempio:

    node setup-space.js
    

È configurato uno spazio di chat denominato con un gruppo e tre utenti umani, incluso l'utente autenticato.

Per accedere allo spazio, usa il relativo ID risorsa per creare l'URL dello spazio. Puoi ottenere l'ID risorsa dallo spazio name nel corpo della risposta di Google Chat. Ad esempio, se il valore name del tuo spazio è spaces/1234567, puoi accedere allo spazio utilizzando il seguente URL: https://mail.google.com/chat/u/0/#chat/space/1234567.