Google Chat-Gruppenbereiche für Ihre Google Workspace-Organisation suchen und verwalten

In diesem Leitfaden wird erläutert, wie ein Google Workspace-Administrator die Methode search() auf einer Space-Ressource der Google Chat API verwenden kann, um benannte Gruppenbereiche in seiner Organisation zu verwalten und administrative Aufgaben auszuführen.

Als Google Workspace-Administrator können Sie die Chat API nur zum Verwalten benannter Gruppenbereiche verwenden, die als SpaceType von SPACE definiert sind. Namensgruppenbereiche sind persistente Gruppenbereiche, in denen Nutzer Nachrichten senden, Dateien teilen und zusammenarbeiten können. Die Chat API kann nicht zum Verwalten von Direktnachrichten oder Gruppenchats verwendet werden.

Die Ressource Space ist ein Ort, an dem Nutzer und Chat-Apps Nachrichten senden, Dateien teilen und zusammenarbeiten können. Es gibt verschiedene Arten von Gruppenbereichen:

  • Direktnachrichten (DMs) sind Unterhaltungen zwischen zwei Nutzern oder einem Nutzer und einer Chat-App.
  • Gruppenchats sind Unterhaltungen zwischen drei oder mehr Nutzern und Chat-Apps.
  • Namensgruppenbereiche sind persistente Gruppenbereiche, in denen Nutzer Nachrichten senden, Dateien teilen und zusammenarbeiten können.

Als Google Workspace-Administrator können Sie mit der Chat API auf folgende Weise nach benannten Gruppenbereichen in Ihrer Organisation suchen und diese verwalten:

  • Gruppenbereiche in der Organisation prüfen Mit der Methode search() können Sie eine Liste aller Gruppenbereiche in einer Organisation mit detaillierten Informationen zu den Einstellungen und Metadaten jedes Gruppenbereichs abrufen, z. B. Erstellungsdatum, Datum der letzten Aktivität, Anzahl der Mitglieder, Status der Einstellung für die Verlaufsfunktion und Möglichkeit, externe Gäste einzuladen.
  • Inaktive Gruppenbereiche finden und löschen Mit der Methode search() können Sie Gruppenbereiche finden, die seit einem bestimmten Datum und einer bestimmten Uhrzeit nicht mehr verwendet wurden, und sie dann löschen. Weitere Informationen und Beispielcode finden Sie unter Inaktive Gruppenbereiche finden und löschen.
  • Eine Liste von Gruppenbereichen anhand von Suchkriterien exportieren Mit der Methode search() können Sie eine Liste der Gruppenbereiche abrufen, die die in query angegebenen Kriterien erfüllen, und die Ergebnisse zur Analyse in eine CSV-Datei exportieren.
  • Verwaltungsmitarbeiter von Gruppenbereichen finden und kontaktieren Mit der Methode search() können Sie eine Liste aller Gruppenbereiche in einer Organisation abrufen und dann mit der Methode members.list() eine Liste aller Administratoren des Gruppenbereichs abrufen.
  • Gruppenbereiche ohne Administratoren finden Mit der Methode search() können Sie eine Liste aller Gruppenbereiche in einer Organisation abrufen und dann mit der Methode members.list() eine Liste der Gruppenbereiche abrufen, die keine Administratoren haben.

Vorbereitung

Python

  • Sie benötigen die Administratorberechtigung Unterhaltungen in Chats und Gruppenbereichen verwalten für Ihre Google Workspace-Organisation.

Google Chat API als Administrator aufrufen

Wenn Sie sich als Nutzer mit Administratorberechtigungen authentifizieren möchten, müssen Sie in Ihrer Anfrage Folgendes angeben:

  • Geben Sie einen Autorisierungsbereich an, der die Verwendung der Nutzerauthentifizierung mit Administratorberechtigungen unterstützt.
  • Setzen Sie das Feld useAdminAccess auf true.

In diesem Abschnitt finden Sie die folgenden Beispiele für den Aufruf der Chat API als Administrator:

In Ihrer Organisation nach Gruppenbereichen suchen

In diesem Beispiel wird erläutert, wie Google Workspace-Administratoren mithilfe der Methode search() der Ressource Space der Chat API nach Gruppenbereichen in einer Organisation suchen können, die bestimmten Kriterien entsprechen.

Wenn Sie die search()-Methode mit Nutzerauthentifizierung und Administratorberechtigungen aufrufen möchten, müssen Sie in der Anfrage Folgendes angeben:

  • Geben Sie den Autorisierungsbereich chat.admin.spaces oder chat.admin.spaces.readonly an.
  • Geben Sie useAdminAccess=true an.
  • Geben Sie die Suchparameter query an, um die Ergebnisse zu filtern:
    • customer = "customers/my_customer" – erforderlich, der einzige unterstützte Wert ist customers/my_customer
    • spaceType = "SPACE" – erforderlich, der einzige unterstützte Wert ist SPACE
    • Optional: Eine oder mehrere zusätzliche Suchanfragen, um die Suche im Gruppenbereich weiter zu filtern, z. B. nach Keywords in Anzeigenamen (displayName), dem Erstellungsdatum (createTime) oder nach Aktivitäten im Gruppenbereich (lastActiveTime).

Im folgenden Code wird ein Beispiel für die Suche nach Gruppenbereichen mit einem Anzeigenamen gezeigt, der „Hallo“ und „Welt“ in beliebiger Kombination enthält:

Python

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    SCOPES = [
      'https://www.googleapis.com/auth/chat.admin.spaces.readonly',
    ]
    
    def main():
    # 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)
    
    spaces = []
    page_token = ''
    
    # Search for all spaces.
    while True:
      result = (
          chat.spaces()
          .search(
              useAdminAccess=True,
              query=(
                'customer = "customers/my_customer"'
                'AND spaceType = "SPACE"'
                'AND displayName:"Hello World"'
                )
    pageToken=page_token,
          )
          .execute()
      )
      if 'spaces' not in result:
        print('No spaces found named Hello World.')
        return
      spaces.extend(result['spaces'])
      if 'nextPageToken' in result:
        page_token = result['nextPageToken']
      else:
        break
    
    print(str(len(spaces)) + ' spaces found:')
    # Prints the list of spaces.
    print(spaces)
    
  3. Erstellen und führen Sie das Beispiel in Ihrem Arbeitsverzeichnis aus:

    python3 search_spaces_for_hello_world.py

Inaktive Gruppenbereiche suchen und löschen

In diesem Beispiel wird erläutert, wie Google Workspace-Administratoren mit der Methode search() der Ressource Space der Chat API inaktive Gruppenbereiche finden und dann mit der Methode delete() und dem Parameter useAdminAccess löschen können.

Inaktive Google Chat-Gruppenbereiche, die nicht mehr aktiv genutzt werden, können wertvollen Speicherplatz belegen und die Benutzeroberfläche überladen. Mit der Methode search() können Administratoren Gruppenbereiche finden, die seit einem bestimmten Datum und einer bestimmten Uhrzeit nicht mehr verwendet wurden, z. B. vor zwei Monaten. Nachdem die Liste der Gruppenbereiche aufgelistet wurde, können Administratoren Maßnahmen ergreifen, z. B. sie aktualisieren oder löschen.

Wenn Sie nach einer Liste inaktiver Gruppenbereiche suchen und diese dann mit Nutzerauthentifizierung und Administratorberechtigungen löschen möchten, geben Sie Folgendes in Ihren Anfragen an:

  • Wenn Sie nach inaktiven Gruppenbereichen suchen möchten, geben Sie Folgendes an:
    • Geben Sie den Autorisierungsbereich chat.admin.spaces oder chat.admin.spaces.readonly an.
    • Rufen Sie die Methode search() für die Ressource Spaces auf.
    • Legen Sie INACTIVE_SPACE_DEADLINE auf das Datum und die Uhrzeit der letzten Aktivität fest, anhand derer die zurückzugebenden Gruppenbereiche bestimmt werden.
    • Geben Sie useAdminAccess=true an.
    • Geben Sie die Suchparameter query an, um die Ergebnisse zu filtern:
      • customer = "customers/my_customer" – erforderlich, der einzige unterstützte Wert ist customers/my_customer
      • spaceType = "SPACE" – erforderlich, der einzige unterstützte Wert ist SPACE
      • lastActiveTime: Wenn Sie Ihre Anfrage so filtern möchten, dass nur inaktive Gruppenbereiche zurückgegeben werden, geben Sie lastActiveTime an.
  • Wenn Sie die inaktiven Gruppenbereiche aus den Suchergebnissen löschen möchten, geben Sie Folgendes an:
    • Geben Sie den Autorisierungsbereich für chat.admin.delete an.
    • Rufen Sie die Methode delete() für die Ressource Spaces auf.
    • Geben Sie useAdminAccess=true an.

Im folgenden Code wird gezeigt, wie Sie mit Administratorrechten nach inaktiven Gruppenbereichen suchen und diese löschen:

Python

  1. Erstellen Sie in Ihrem Arbeitsverzeichnis eine Datei mit dem Namen find_and_delete_inactive_spaces.py.

  2. Fügen Sie in find_and_delete_inactive_spaces.py den folgenden Code ein:

    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    SCOPES = [
        'https://www.googleapis.com/auth/chat.admin.spaces.readonly',
        'https://www.googleapis.com/auth/chat.admin.delete',
    ]
    
    # Any spaces that have not been active since this time will be deleted.
    INACTIVE_SPACE_DEADLINE = '"INACTIVE_DATE"'
    
    def main():
      # 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)
    
      spaces = []
      page_token = ''
    
      # Search for all inactive spaces.
      while True:
        result = (
            chat.spaces()
            .search(
                useAdminAccess=True,
                query=(
                    'customer = "customers/my_customer" AND spaceType = "SPACE" AND'
                    ' lastActiveTime < '
                )
                + INACTIVE_SPACE_DEADLINE,
                pageToken=page_token,
            )
            .execute()
        )
        if 'spaces' not in result:
          print('No inactive spaces found.')
          return
        spaces.extend(result['spaces'])
        if 'nextPageToken' in result:
          page_token = result['nextPageToken']
        else:
          break
    
      print(str(len(spaces)) + ' inactive spaces found:')
      # Prints the list of inactive spaces.
      print(spaces)
    
      # Delete all inactive spaces.
      for space in spaces:
        (
            chat.spaces()
            .delete(
                useAdminAccess=True,
                name=space['name'],
            )
            .execute()
        )
        print(
            'Deleted space: '
            + space['displayName']
            + ', Resource Name: '
            + space['name']
        )
    
    if __name__ == '__main__':
      main()
    
  3. Ersetzen Sie im Code INACTIVE_DATE durch ein Datum und eine Uhrzeit im Format JJJJ-MM-TTTHH:MM:SS+HH:MM. Beispiel: „2024-06-01T00:00:00+00:00“.

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

    python3 find_and_delete_inactive_spaces.py