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

In diesem Leitfaden wird erläutert, wie ein Google Workspace-Administrator die search() Methode für eine Space Ressource der Google Chat API mit Administratorberechtigungen (useAdminAccess=true) 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. 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 Ressource Space stellt einen Ort dar, an dem Nutzer und Chat-Apps Nachrichten senden, Dateien teilen und zusammenarbeiten können. Es gibt verschiedene Arten von Gruppenbereichen:

  • Direktnachrichten sind Unterhaltungen zwischen zwei Nutzern oder einem Nutzer und einer Chat-App.
  • Gruppenchats sind Unterhaltungen zwischen mindestens drei 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 Gruppenbereiche 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 Gruppenbereiche in einer Organisation mit detaillierten Informationen zu den Einstellungen und Metadaten der einzelnen Gruppenbereiche abrufen, z. B. Erstellungsdatum, Datum der letzten Aktivität, Anzahl der Mitglieder, Status der Einstellung für den Nachrichtenverlauf und Möglichkeit, externe Gäste einzuladen.
  • Inaktive Gruppenbereiche suchen und löschen Mit der Methode search() können Sie Gruppenbereiche suchen, 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 suchen und löschen.
  • Liste von Gruppenbereichen basierend auf Suchkriterien exportieren Mit der Methode search() können Sie eine Liste von Gruppenbereichen abrufen, die die in der query angegebenen Kriterien erfüllen, und die Ergebnisse zur Analyse in eine CSV-Datei exportieren.
  • Gruppenbereich-Manager suchen und kontaktieren Mit der search() Methode können Sie eine Liste aller Gruppenbereiche in einer Organisation abrufen, dann mit der members.list() Methode eine Liste aller Gruppenbereich-Mitglieder abrufen, die Manager sind.
  • Gruppenbereiche ohne zugewiesene Manager suchen Mit der Methode search() können Sie eine Liste aller Gruppenbereiche in einer Organisation abrufen und dann mit der Methode members.list() eine Liste von Gruppenbereichen abrufen, die keine Manager haben.

Vorbereitung

Python

  • Sie benötigen Administratorberechtigungen für 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 Folgendes in Ihre Anfrage aufnehmen:

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

In diesem Abschnitt werden die folgenden Beispiele für das Aufrufen der Chat API als Administrator gezeigt:

Nach Gruppenbereichen in Ihrer Organisation suchen

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 anhand bestimmter Kriterien nach Gruppenbereichen in einer Organisation zu suchen.

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

  • Geben Sie den chat.admin.spaces oder chat.admin.spaces.readonly Autorisierungsbereich an.
  • Geben Sie useAdminAccess=true an.
  • Geben Sie die Suche query Parameter 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 Abfragen, um die Suche nach Gruppenbereichen weiter zu filtern, z. B. Schlüsselwörter in Anzeigenamen (displayName), das Erstellungsdatum (createTime) oder basierend auf der Gruppenbereich-Aktivität (lastActiveTime).

Der folgende Code zeigt ein Beispiel dafür, wie Sie mit Administratorberechtigungen nach Gruppenbereichen suchen, deren Anzeigename in beliebiger Kombination „Hallo“ und „Welt“ 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 Gruppenbereiche zu suchen und sie dann mit der Methode delete() und dem Parameter useAdminAccess zu löschen.

Inaktive Google Chat-Gruppenbereiche, 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 Gruppenbereiche suchen, die seit einem bestimmten Datum und einer bestimmten Uhrzeit nicht mehr verwendet wurden, z. B. seit zwei Monaten. Nachdem die Liste der Gruppenbereiche erstellt wurde, können Administratoren Maßnahmen ergreifen, z. B. sie aktualisieren oder löschen.

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

  • So suchen Sie nach inaktiven Gruppenbereichen:
    • Geben Sie den chat.admin.spaces oder chat.admin.spaces.readonly Autorisierungsbereich an.
    • Rufen Sie die Methode search() für die Ressource Spaces auf.
    • Setzen Sie INACTIVE_SPACE_DEADLINE auf das Datum und die Uhrzeit der letzten Aktivität, anhand derer die zurückzugebenden Gruppenbereiche bestimmt werden.
    • Geben Sie useAdminAccess=true an.
    • Geben Sie die Suche query Parameter 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 die Anfrage so filtern möchten, dass nur inaktive Gruppenbereiche zurückgegeben werden, geben Sie lastActiveTime an.
  • So löschen Sie die inaktiven Gruppenbereiche aus den Suchergebnissen:
    • Geben Sie den Autorisierungsbereich chat.admin.delete 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 Gruppenbereichen 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. Beispiel: „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