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

In dieser Anleitung wird beschrieben, wie ein Google Workspace-Administrator die search()-Methode für eine Space-Ressource der Google Chat API verwenden kann, um benannte Bereiche in seiner Organisation zu verwalten und administrative Aufgaben auszuführen.

Als Google Workspace-Administrator können Sie die Chat API nur zum Verwalten von benannten Gruppenbereichen verwenden, die als SpaceType von SPACE definiert sind. Benannte Gruppenbereiche sind dauerhafte Orte, an denen Nutzer Nachrichten senden, Dateien teilen und zusammenarbeiten können. Sie können die Chat API nicht zum Verwalten von Direktnachrichten oder Gruppenchats verwenden.

Die Space-Ressource stellt einen Ort dar, an dem Personen und Chat-Apps Nachrichten senden, Dateien teilen und zusammenarbeiten können. Es gibt verschiedene Arten von Bereichen:

  • Direktnachrichten (DNs) sind Unterhaltungen zwischen zwei Nutzern oder zwischen einem Nutzer und einer Chat-App.
  • Gruppenchats sind Unterhaltungen zwischen drei oder mehr Nutzern und Chat-Apps.
  • Benannte Gruppenbereiche sind dauerhafte Orte, an denen Nutzer Nachrichten senden, Dateien teilen und zusammenarbeiten können.

Als Google Workspace-Administrator können Sie die Chat API verwenden, um benannte Bereiche in Ihrer Organisation auf folgende Weise zu suchen und zu verwalten:

  • Gruppenbereiche in der Organisation prüfen: Mit der Methode search() können Sie eine Liste aller Bereiche in einer Organisation mit detaillierten Informationen zu den Einstellungen und Metadaten jedes Bereichs abrufen, z. B. Erstellungsdatum, Datum der letzten Aktivität, Anzahl der Mitglieder, Status der Verlaufseinstellung und Möglichkeit, externe Gäste einzuladen.
  • Inaktive Gruppenbereiche suchen und löschen: Mit der Methode search() können Sie Bereiche 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 Bereiche suchen und löschen.
  • Eine Liste von Gruppenbereichen basierend auf Suchkriterien exportieren: Mit der Methode search() können Sie eine Liste von Bereichen abrufen, die den in query angegebenen Kriterien entsprechen, und die Ergebnisse zur Analyse in eine CSV-Datei exportieren.
  • Space-Manager finden und kontaktieren Mit der Methode search() können Sie eine Liste aller Spaces in einer Organisation abrufen. Anschließend können Sie mit der Methode members.list() eine Liste aller Space-Mitglieder abrufen, die Manager sind.
  • Gruppenbereiche ohne zugewiesene Administratoren finden: Mit der Methode search() können Sie eine Liste aller Spaces in einer Organisation abrufen. Anschließend können Sie mit der Methode members.list() eine Liste der Spaces abrufen, die keine Administratoren haben.

Vorbereitung

Python

  • Sie benötigen Administratorberechtigungen für Ihre Google Workspace-Organisation, um Unterhaltungen in Chats und Gruppenbereichen zu verwalten.

Google Chat API als Administrator aufrufen

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

  • 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:

Nach Gruppenbereichen in Ihrer Organisation suchen

In diesem Beispiel wird erläutert, wie Google Workspace-Administratoren mit der Methode search() für die Ressource Space der Chat API anhand bestimmter Kriterien nach Bereichen in einer Organisation suchen können.

Wenn Sie die Methode search() mit Nutzerauthentifizierung und Administratorberechtigungen aufrufen möchten, müssen Sie Folgendes in der Anfrage 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 können Sie eine oder mehrere zusätzliche Suchanfragen verwenden, um die Suche nach Projektbereichen weiter zu filtern, z. B. nach Schlüsselwörtern in Anzeigenamen (displayName), nach Erstellungsdatum (createTime) oder nach Projektbereichsaktivität (lastActiveTime).

Der folgende Code zeigt ein Beispiel dafür, wie Sie mit Administratorberechtigungen nach Bereichen mit einem Anzeigenamen suchen, der „Hello“ und „World“ 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 den folgenden Code in search_spaces_for_hello_world.py 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(
        'credentials.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 Sie das Beispiel in Ihrem Arbeitsverzeichnis und führen Sie es aus:

    python3 search_spaces_for_hello_world.py

Inaktive Gruppenbereiche suchen und löschen

In diesem Beispiel wird erläutert, wie Google Workspace-Administratoren die Methode search() für die Ressource Space der Chat API verwenden können, um inaktive Bereiche zu finden und sie dann mit der Methode delete() und dem Parameter useAdminAccess zu löschen.

Inaktive Google Chat-Bereiche, die nicht mehr aktiv verwendet werden, können wertvollen Speicherplatz belegen und die Benutzeroberfläche unübersichtlich machen. Mit der Methode search() können Administratoren Bereiche finden, die seit einem bestimmten Datum und einer bestimmten Uhrzeit, z. B. vor zwei Monaten, nicht mehr verwendet wurden. Nachdem die Liste der Bereiche erstellt wurde, können Administratoren Aktionen für sie ausführen, z. B. sie aktualisieren oder löschen.

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

  • Geben Sie Folgendes an, um nach inaktiven Gruppenbereichen zu suchen:
    • 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 Räume bestimmt werden.
    • Geben Sie useAdminAccess=true an.
    • Geben Sie die Suchparameter query an, um die Ergebnisse zu filtern:
      • customer = "customers/my_customer": erforderlich, einziger unterstützter Wert ist customers/my_customer
      • spaceType = "SPACE": erforderlich. Der einzige unterstützte Wert ist SPACE.
      • lastActiveTime: Wenn Sie Ihre Anfrage filtern möchten, sodass 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 chat.admin.delete-Autorisierungsbereich an.
    • Rufen Sie die Methode delete() für die Ressource Spaces auf.
    • Geben Sie useAdminAccess=true an.

Der folgende Code zeigt ein Beispiel dafür, wie Sie mit Administratorberechtigungen nach inaktiven Bereichen suchen und sie löschen:

Python

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

  2. Fügen Sie den folgenden Code in find_and_delete_inactive_spaces.py 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(
          'credentials.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, z. B. „2024-06-01T00:00:00+00:00“.

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

    python3 find_and_delete_inactive_spaces.py