Mitgliedschaft eines Nutzers in einem Google Chat-Bereich aktualisieren

In dieser Anleitung wird erläutert, wie Sie mit der Methode patch für die Ressource membership der Google Chat API Attribute einer Mitgliedschaft ändern, z. B. von einem Mitglied des Gruppenbereichs zum Administrator eines Gruppenbereichs oder zum Administrator eines Gruppenbereichs.

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.

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 Aktualisieren einer Mitgliedschaft ist eine Nutzerauthentifizierung mit dem Autorisierungsbereich chat.memberships oder beim Importieren von Daten in Chat mit dem Autorisierungsbereich chat.import 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 Aktualisieren einer Mitgliedschaft ist eine Nutzerauthentifizierung mit dem Autorisierungsbereich chat.memberships oder beim Importieren von Daten in Chat mit dem Autorisierungsbereich chat.import erforderlich.

Apps Script

Mitgliedschaft aktualisieren

Wenn Sie eine Mitgliedschaft für einen Gruppenbereich aktualisieren möchten, übergeben Sie in Ihrer Anfrage Folgendes:

  • Geben Sie den Autorisierungsbereich chat.memberships an.
  • Rufen Sie die Methode patch für die Ressource Membership auf und übergeben Sie den name der zu aktualisierenden Mitgliedschaft sowie einen updateMask und ein body für die aktualisierten Mitgliedschaftsattribute.
  • updateMask gibt die Aspekte der zu aktualisierenden Mitgliedschaft an. Dazu gehören:
    • role: Rolle des Nutzers in einem Chatbereich, die die zulässigen Aktionen im Gruppenbereich bestimmt. Mögliche Werte sind:
      • ROLE_MEMBER: Ein Mitglied des Gruppenbereichs. Nutzende haben grundlegende Berechtigungen, z. B. das Senden von Nachrichten an den Gruppenbereich. In 1:1- und unbenannten Gruppen- gesprächen hat jeder diese Rolle.
      • ROLE_MANAGER: Administrator des Gruppenbereichs. Der Nutzer hat alle grundlegenden Berechtigungen sowie Administratorberechtigungen, mit denen er den Gruppenbereich verwalten kann, z. B. Mitglieder hinzufügen oder entfernen. Wird nur in Gruppenbereichen unterstützt, in denen spaceType gleich SPACE ist (benannte Bereiche).

Ein reguläres Mitglied des Gruppenbereichs zum Administrator des Gruppenbereichs machen

Im folgenden Beispiel wird ein reguläres Mitglied eines Gruppenbereichs zu einem Administrator des Gruppenbereichs. Dazu wird role als ROLE_MANAGER in der body angegeben, die aktualisierte Mitgliedschaftsattribute angibt:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_membership_update.py.
  2. Fügen Sie den folgenden Code in chat_membership_update.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 updates a specified space member to change
        it from a regular member to a space manager.
        '''
    
        # 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().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MANAGER'}
    
          ).execute()
    
        # Prints details about the updated 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.

    • MEMBERSHIP: ein Mitgliedsname, den Sie aus der Methode spaces.members.list in der Chat API abrufen können.

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

    python3 chat_membership_update.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Updates a membership in a Chat space to change it from
    * a space member to a space manager.
    * @return {!Promise<!Object>}
    */
    async function updateSpace() {
    
      /**
      * Authenticate with Google Workspace
      * and get user authorization.
      */
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      /**
      * Build a service endpoint for Chat API.
      */
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      /**
      * Use the service endpoint to call Chat API.
      */
      return await chatClient.spaces.patch({
    
        /**
        * The membership to update, and the updated role.
        *
        * Replace SPACE with a space name.
        * Obtain the space name from the spaces resource of Chat API,
        * or from a space's URL.
        *
        * Replace MEMBERSHIP with a membership name.
        * Obtain the membership name from the membership of Chat API.
        */
        name: 'spaces/SPACE/members/MEMBERSHIP',
        updateMask: 'role',
        requestBody: {
          role: 'ROLE_MANAGER'
        }
      });
    }
    
    /**
    * Use the service endpoint to call Chat API.
    */
    updateSpace().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.

    • MEMBERSHIP: ein Mitgliedsname, den Sie aus der Methode spaces.members.list in der Chat API abrufen können.

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

    python3 chat_membership_update.js
    

Apps Script

In diesem Beispiel wird die Chat API mit dem Advanced Chat Service aufgerufen.

  1. Fügen Sie der Datei appsscript.json des Apps Script-Projekts den Autorisierungsbereich chat.memberships hinzu:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships"
    ]
    
  2. Fügen Sie dem Code des Apps Script-Projekts eine Funktion wie diese hinzu:

    /**
     * Updates a membership from space member to space manager.
     * @param {string} memberName The resource name of the membership.
    */
    function updateMembershipToSpaceManager(memberName) {
      try {
        const body = {'role': 'ROLE_MANAGER'};
        Chat.Spaces.Members.patch(memberName, body);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create message with error %s', err.message);
      }
    }
    

Die Google Chat API ändert die angegebene Mitgliedschaft in einen Administrator des Gruppenbereichs und gibt eine Instanz von Membership mit Details zur Änderung zurück.

Administrator des Gruppenbereichs zu einem normalen Mitglied machen

Im folgenden Beispiel wird ein Administrator eines Gruppenbereichs ein reguläres Mitglied, indem role als ROLE_MEMBER in der body angegeben wird, die aktualisierte Mitgliedschaftsattribute angibt:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen chat_membership_update.py.
  2. Fügen Sie den folgenden Code in chat_membership_update.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 updates a specified space member to change
        it from a regular member to a space manager.
        '''
    
        # 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().patch(
    
            # The membership to update, and the updated role.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            #
            # Replace MEMBERSHIP with a membership name.
            # Obtain the membership name from the membership of Chat API.
            name='spaces/SPACE/members/MEMBERSHIP',
            updateMask='role',
            body={'role': 'ROLE_MEMBER'}
    
          ).execute()
    
        # Prints details about the updated 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.

    • MEMBERSHIP: ein Mitgliedsname, den Sie aus der Methode spaces.members.list in der Chat API abrufen können.

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

    python3 chat_membership_update.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Updates a membership in a Chat space to change it from
    * a space manager to a space member.
    * @return {!Promise<!Object>}
    */
    async function updateSpace() {
    
      /**
      * Authenticate with Google Workspace
      * and get user authorization.
      */
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      /**
      * Build a service endpoint for Chat API.
      */
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      /**
      * Use the service endpoint to call Chat API.
      */
      return await chatClient.spaces.patch({
    
        /**
        * The membership to update, and the updated role.
        *
        * Replace SPACE with a space name.
        * Obtain the space name from the spaces resource of Chat API,
        * or from a space's URL.
        *
        * Replace MEMBERSHIP with a membership name.
        * Obtain the membership name from the membership of Chat API.
        */
        name: 'spaces/SPACE/members/MEMBERSHIP',
        updateMask: 'role',
        requestBody: {
          role: 'ROLE_MEMBER'
        }
      });
    }
    
    /**
    * Use the service endpoint to call Chat API.
    */
    updateSpace().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.

    • MEMBERSHIP: ein Mitgliedsname, den Sie aus der Methode spaces.members.list in der Chat API abrufen können.

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

    python3 chat_membership_update.js
    

Apps Script

In diesem Beispiel wird die Chat API mit dem Advanced Chat Service aufgerufen.

  1. Fügen Sie der Datei appsscript.json des Apps Script-Projekts den Autorisierungsbereich chat.memberships hinzu:

    "oauthScopes": [
      "https://www.googleapis.com/auth/chat.memberships"
    ]
    
  2. Fügen Sie dem Code des Apps Script-Projekts eine Funktion wie diese hinzu:

    /**
     * Updates a membership from space manager to space member.
     * @param {string} memberName The resource name of the membership.
    */
    function updateMembershipToSpaceMember(memberName) {
      try {
        const body = {'role': 'ROLE_MEMBER'};
        Chat.Spaces.Members.patch(memberName, body);
      } catch (err) {
        // TODO (developer) - Handle exception
        console.log('Failed to create message with error %s', err.message);
      }
    }
    

Die Google Chat API ändert die angegebene Mitgliedschaft in einen Administrator des Gruppenbereichs und gibt eine Instanz von Membership mit Details zur Änderung zurück.