Находите чат-группы Google Chat для своей организации в Google Workspace и управляйте ими.

В этом руководстве объясняется, как администратор Google Workspace может использовать метод search() в ресурсе Space API Google Chat для управления именованными пространствами в своей организации и выполнения административных задач.

Как администратор Google Workspace, вы можете использовать Chat API только для управления именованными пространствами, которые определяются как SpaceType SPACE . Именованные пространства — это постоянные места, где люди отправляют сообщения, обмениваются файлами и сотрудничают. Вы не можете использовать Chat API для управления прямыми сообщениями (DM) или групповыми чатами.

Ресурс Space представляет собой место, где люди и приложения чата могут отправлять сообщения, обмениваться файлами и сотрудничать. Есть несколько типов помещений:

  • Прямые сообщения (DM) — это разговоры между двумя пользователями или пользователем и приложением чата.
  • Групповые чаты — это разговоры между тремя или более пользователями и приложениями чата.
  • Именованные пространства — это постоянные места, где люди отправляют сообщения, обмениваются файлами и сотрудничают.

Как администратор Google Workspace, вы можете использовать Chat API для поиска именованных пространств в вашей организации и управления ими следующими способами:

  • Аудит помещений в организации. Используя метод search() , вы можете получить список всех пространств в организации с подробной информацией о настройках и метаданных каждого пространства, таких как дата создания, дата последней активности, количество участников, состояние настройки истории и возможность приглашать внешних пользователей. гости.
  • Найдите и удалите неактивные места. Используя метод search() , вы можете найти пробелы, которые не использовались с указанной даты и времени, а затем удалить их. Дополнительные сведения и пример кода см. в разделе Поиск и удаление неактивных пространств .
  • Экспортируйте список пространств на основе критериев поиска. Используя метод search() , вы можете получить список пространств, соответствующих критериям, указанным в query , и экспортировать результаты в файл CSV для анализа.
  • Найдите и свяжитесь с менеджерами помещений. Используя метод search() , вы можете получить список всех пространств в организации, а затем использовать members.list() чтобы получить список всех участников пространства, которые являются менеджерами.
  • Найдите места без назначенных менеджеров. Используя метод search() , вы можете получить список всех пространств в организации, а затем использовать members.list() , чтобы получить список пространств, у которых нет менеджеров.

Предварительные условия

Питон

  • У вас должны быть права администратора на управление беседами в чате и пространствах для вашей организации Google Workspace.

Вызовите Google Chat API от имени администратора.

Чтобы пройти аутентификацию в качестве пользователя с правами администратора , вы должны передать в своем запросе следующее:

  • Укажите область авторизации , которая поддерживает использование аутентификации пользователя с правами администратора.
  • Установите для поля useAdminAccess значение true .

В этом разделе показаны следующие примеры вызова Chat API от имени администратора:

Поиск пространств в вашей организации

В этом примере объясняется, как администраторы Google Workspace могут использовать метод search() ресурса Space API Chat для поиска пространств в организации на основе заданных критериев.

Для вызова метода search() с аутентификацией пользователя и правами администратора необходимо указать в запросе следующее:

  • Укажите область chat.admin.spaces chat.admin.spaces.readonly .
  • Укажите useAdminAccess=true .
  • Укажите параметры поискового query для фильтрации результатов:
    • customer = "customers/my_customer" – обязательный, единственное поддерживаемое значение — customers/my_customer
    • spaceType = "SPACE" — требуется, единственное поддерживаемое значение — SPACE
    • При необходимости один или несколько дополнительных запросов для дальнейшей фильтрации поиска в пространстве, например, по ключевым словам в отображаемых именах ( displayName ), дате создания ( createTime ) или на основе активности в пространстве ( lastActiveTime ).

В следующем коде показан пример использования прав администратора для поиска пространств с отображаемым именем, содержащим «Hello» и «World» в любой комбинации:

Питон

  1. В своем рабочем каталоге создайте файл с именем search_spaces_for_hello_world.py .
  2. Включите следующий код в search_spaces_for_hello_world.py :

    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. В своем рабочем каталоге соберите и запустите пример:

    python3 search_spaces_for_hello_world.py

Найдите и удалите неактивные места

В этом примере объясняется, как администраторы Google Workspace могут использовать метод search() ресурса Space Chat API, чтобы найти неактивные места, а затем удалить их с помощью метода delete() с параметром useAdminAccess .

Неактивные пространства Google Chat, которые больше не используются активно, могут занимать ценное пространство для хранения и создавать беспорядок в пользовательском интерфейсе. Используя метод search() , администраторы могут найти места, которые не использовались с определенной даты и времени, например, два месяца назад. После перечисления списка пространств администраторы могут предпринять с ними действия, например обновить или удалить их.

Чтобы найти список неактивных пространств и затем удалить их с аутентификацией пользователя и правами администратора , передайте в своих запросах следующее:

  • Для поиска неактивных пространств укажите следующее:
    • Укажите область chat.admin.spaces chat.admin.spaces.readonly .
    • Вызовите метод search() для ресурса Spaces .
    • Задайте для INACTIVE_SPACE_DEADLINE дату и время последнего действия, определяющего возвращаемые пробелы.
    • Укажите useAdminAccess=true .
    • Укажите параметры поискового query для фильтрации результатов:
      • customer = "customers/my_customer" – обязательный, единственное поддерживаемое значение — customers/my_customer
      • spaceType = "SPACE" — требуется, единственное поддерживаемое значение — SPACE
      • lastActiveTime – чтобы отфильтровать ваш запрос и возвращать только неактивные пробелы, укажите lastActiveTime
  • Чтобы удалить неактивные места из результатов поиска, укажите следующее:
    • Укажите область chat.admin.delete .
    • Вызовите метод delete() ресурса Spaces .
    • Укажите useAdminAccess=true .

В следующем коде показан пример поиска неактивных пространств и их удаления с использованием прав администратора:

Питон

  1. В своем рабочем каталоге создайте файл с именем find_and_delete_inactive_spaces.py .

  2. Включите следующий код в find_and_delete_inactive_spaces.py :

    
    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. В коде замените INACTIVE_DATE датой и временем в формате ГГГГ-ММ-ДДТЧЧ:ММ:СС+ЧЧ:ММ. Например, «2024-06-01T00:00:00+00:00».

  4. В своем рабочем каталоге соберите и запустите пример:

    python3 find_and_delete_inactive_spaces.py