Nutzer oder eine Google Chat App in einen Gruppenbereich einladen oder hinzufügen

In dieser Anleitung wird erläutert, wie Sie mit der Methode create für die Ressource membership der Google Chat API einen Nutzer oder eine Chat-App zu einem Gruppenbereich einladen oder hinzufügen, der auch als Erstellen einer Mitgliedschaft bezeichnet wird. Wenn das angegebene Mitglied beim Erstellen einer Mitgliedschaft die Richtlinie zum automatischen Annehmen deaktiviert hat, wird es eingeladen und muss die Einladung zum Gruppenbereich annehmen, bevor es beitreten kann. Andernfalls wird das Mitglied beim Erstellen einer Mitgliedschaft direkt dem angegebenen Gruppenbereich hinzugefügt.

Die Ressource Membership gibt an, ob ein menschlicher Nutzer oder eine Google Chat-App in einen Gruppenbereich eingeladen oder dort teilweise eingeladen wurde oder nicht.

Voraussetzungen

Python

  • Python 3.6 oder höher
  • Das Paketverwaltungstool pip
  • Die aktuellen Google-Clientbibliotheken für Python. Führen Sie den folgenden Befehl in der Befehlszeile aus, um sie zu installieren oder zu aktualisieren:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Ein Google Cloud-Projekt, in dem die Google Chat API aktiviert und konfiguriert ist. Eine entsprechende Anleitung finden Sie unter Google Chat-App erstellen.
  • Für die Chat-Anwendung konfigurierte Autorisierung. Zum Erstellen einer Mitgliedschaft ist eine Nutzerauthentifizierung mit dem Autorisierungsbereich chat.memberships oder chat.memberships.app erforderlich.

Node.js

  • Node.js und npm
  • Aktuelle Google-Clientbibliotheken für Node.js Führen Sie den folgenden Befehl über die Befehlszeile aus, um sie zu installieren:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Ein Google Cloud-Projekt, in dem die Google Chat API aktiviert und konfiguriert ist. Eine entsprechende Anleitung finden Sie unter Google Chat-App erstellen.
  • Für die Chat-Anwendung konfigurierte Autorisierung. Zum Erstellen einer Mitgliedschaft ist eine Nutzerauthentifizierung mit dem Autorisierungsbereich chat.memberships oder chat.memberships.app erforderlich.

Nutzer in einen Gruppenbereich einladen oder hinzufügen

Wenn Sie einen Nutzer in einen Gruppenbereich einladen oder hinzufügen möchten, übergeben Sie in Ihrer Anfrage Folgendes:

  • Geben Sie den Autorisierungsbereich chat.memberships an.
  • Rufen Sie die Methode create für die Ressource membership auf.
  • Legen Sie für parent den Ressourcennamen des Gruppenbereichs fest, in dem die Mitgliedschaft erstellt werden soll.
  • Setze member auf users/{user}, wobei {user} die Person ist, für die du eine Mitgliedschaft erstellen möchtest, und entweder:
    • Die ID der Person in der People API. Wenn die Person der People API resourceName beispielsweise people/123456789 ist, legen Sie membership.member.name auf users/123456789 fest.
    • Die ID für den Nutzer in der Directory API.
    • Die E-Mail-Adresse des Nutzers. Beispiel: users/222larabrown@gmail.com oder users/larabrown@cymbalgroup.com. Wenn der Nutzer ein Google-Konto verwendet oder zu einer anderen Google Workspace-Organisation gehört, müssen Sie seine E-Mail-Adresse verwenden.

Im folgenden Beispiel wird ein Nutzer einem Gruppenbereich hinzugefügt:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_membership_user_create.py.
  2. Fügen Sie den folgenden Code in chat_membership_user_create.py ein:

    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"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds a user to a Chat space by creating a membership.
        '''
    
        # 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().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which user the membership is for.
            body = {
              'member': {
                'name':'users/USER',
                'type': 'HUMAN'
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Ersetzen Sie im Code Folgendes:

    • SPACE: Der Name eines Gruppenbereichs, den Sie über die Methode spaces.list in der Chat API oder aus der URL eines Gruppenbereichs abrufen können.

    • USER: eine Nutzer-ID.

  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_membership_user_create.py
    

Node.js

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen add-user-to-space.js.
  2. Fügen Sie den folgenden Code in add-user-to-space.js ein:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the user to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addUserToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships.app',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/USER', type: 'HUMAN'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. Ersetzen Sie im Code Folgendes:

    • SPACE: Der Name eines Gruppenbereichs, den Sie über die Methode spaces.list in der Chat API oder aus der URL eines Gruppenbereichs abrufen können.

    • USER: eine Nutzer-ID.

  4. Führen Sie das Beispiel in Ihrem Arbeitsverzeichnis aus:

    node add-user-to-space.js
    

Die Chat API gibt eine Instanz von membership zurück, in der die erstellte Mitgliedschaft beschrieben wird.

Chat-App zu Gruppenbereichen hinzufügen

Eine Chat-App kann einem Gruppenbereich keine andere App als Mitglied hinzufügen. Übergeben Sie in Ihrer Anfrage Folgendes, um einem Gruppenbereich oder einer Direktnachricht zwischen zwei menschlichen Nutzern eine Chat-App hinzuzufügen:

  • Geben Sie den Autorisierungsbereich chat.memberships.app an.
  • Rufen Sie die Methode create für die Ressource membership auf.
  • Legen Sie für parent den Ressourcennamen des Gruppenbereichs fest, in dem die Mitgliedschaft erstellt werden soll.
  • Legen Sie für member den Alias users/app fest, der für die Anwendung steht, die die Chat API aufruft.

Im folgenden Beispiel wird einem Gruppenbereich eine Chat-App hinzugefügt:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_membership_app_create.py.
  2. Fügen Sie den folgenden Code in chat_membership_app_create.py ein:

    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.app"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds the Chat app to a Chat space.
        '''
    
        # 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().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Set the Chat app as the entity that gets added to the space.
            # 'app' is an alias for the Chat app calling the API.
            body = {
                'member': {
                  'name':'users/app',
                  'type': 'BOT'
                }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Ersetzen Sie im Code SPACE durch den Namen eines Gruppenbereichs, den Sie mit der Methode spaces.list in der Chat API oder aus der URL eines Gruppenbereichs abrufen können.

  4. Erstellen Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 chat_membership_app_create.py
    

Node.js

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen add-app-to-space.js.
  2. Fügen Sie den folgenden Code in add-app-to-space.js ein:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the app to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addAppToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships.app',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/app', type: 'BOT'}}
      });
    }
    
    addAppToSpace().then(console.log);
    
  3. Ersetzen Sie im Code SPACE durch den Namen eines Gruppenbereichs, den Sie mit der Methode spaces.list in der Chat API oder aus der URL eines Gruppenbereichs abrufen können.

  4. Führen Sie das Beispiel in Ihrem Arbeitsverzeichnis aus:

    node add-app-to-space.js
    

Die Chat API gibt eine Instanz von membership zurück, in der die erstellte Mitgliedschaft beschrieben wird.