В этом руководстве объясняется, как администратор Google Workspace может использовать метод search() ресурса Space в Google Chat API для управления именованными пространствами в рамках своей организации и выполнения административных задач.
Как администратор Google Workspace, вы можете использовать API чата только для управления именованными пространствами, которые определены как SpaceType со значением SPACE . Именованные пространства — это постоянные места, где люди отправляют сообщения, обмениваются файлами и сотрудничают. Вы не можете использовать API чата для управления личными сообщениями (DM) или групповыми чатами.
Ресурс Space представляет собой место, где люди и приложения для чата могут отправлять сообщения, обмениваться файлами и сотрудничать. Существует несколько типов пространств:
- Личные сообщения (DM) — это переписка между двумя пользователями или между пользователем и приложением для чата.
- Групповые чаты — это беседы между тремя или более пользователями в чат-приложениях.
- Именованные пространства — это постоянно существующие места, где люди отправляют сообщения, обмениваются файлами и сотрудничают.
Как администратор Google Workspace, вы можете использовать API чата для поиска и управления именованными пространствами в вашей организации следующими способами:
- Проведите аудит пространств в организации. Используя метод
search(), вы можете получить список всех пространств в организации с подробной информацией о настройках и метаданных каждого пространства, таких как дата создания, дата последней активности, количество участников, статус настройки истории и возможность приглашения внешних гостей. - Поиск и удаление неактивных пространств. С помощью метода
search()можно найти пространства, которые не использовались с указанной даты и времени, а затем удалить их. Дополнительные сведения и примеры кода см. в разделе «Поиск и удаление неактивных пространств» . - Экспорт списка помещений на основе критериев поиска. Используя метод
search(), вы можете получить список помещений, соответствующих критериям, указанным вquery, и экспортировать результаты в CSV-файл для анализа. - Найдите и свяжитесь с менеджерами помещений. Используя метод
search(), вы можете получить список всех помещений в организации, а затем с помощью методаmembers.list()получить список всех членов помещения, являющихся менеджерами. - Найдите помещения без назначенных руководителей. Используя метод
search(), вы можете получить список всех помещений в организации, а затем использовать методmembers.list()для получения списка помещений, у которых нет руководителей.
Предварительные требования
Python
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Настройте свою среду:
- Создайте проект в Google Cloud .
- Настройте экран согласия OAuth .
- Включите и настройте API Google Chat, указав имя, значок и описание для вашего приложения чата.
- Установите клиентскую библиотеку Google API для Python.
- Создайте учетные данные клиента OAuth для настольного приложения. Чтобы запустить пример из этого руководства, сохраните учетные данные в виде JSON-файла с именем
credentials.jsonв локальной директории.
- Выберите область авторизации , которая поддерживает аутентификацию пользователей.
- Для работы с организацией Google Workspace вам необходимы права администратора раздела «Управление чатами и пространствами» .
Вызовите API Google Chat от имени администратора.
Для аутентификации в качестве пользователя с правами администратора необходимо передать в запросе следующие данные:
- Укажите область авторизации , которая поддерживает аутентификацию пользователей с правами администратора.
- Установите для поля
useAdminAccessзначениеtrue.
В этом разделе приведены следующие примеры вызова API чата от имени администратора:
- Для поиска пробелов вызовите метод
search(). - Чтобы найти и удалить неактивные пространства в вашей организации, вызовите метод
search(), который вернет список неактивных пространств, а затем вызовите методdelete()для их удаления.
Найдите подходящие помещения в вашей организации.
В этом примере объясняется, как администраторы Google Workspace могут использовать метод search() ресурса Space в API чата для поиска рабочих мест в организации на основе заданных критериев.
Для вызова метода 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» в любой комбинации:
Python
- В рабочей директории создайте файл с именем
search_spaces_for_hello_world.py. Включите следующий код в
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( '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)В рабочей директории соберите и запустите пример:
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.
- Укажите область действия авторизации
Приведенный ниже код демонстрирует пример поиска неактивных пространств и их удаления с использованием прав администратора:
Python
В рабочей директории создайте файл с именем
find_and_delete_inactive_spaces.py.Включите следующий код в
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( '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()В коде замените
INACTIVE_DATEна дату и время в формате ГГГГ-ММ-ДДТЧ:ММ:СС+ЧЧ:ММ. Например, "2024-06-01T00:00:00+00:00".В рабочей директории соберите и запустите пример:
python3 find_and_delete_inactive_spaces.py
Связанные темы
- Удалите пробелы
- Список участников в пространстве
- Управление чатами в качестве администратора Google Workspace.
- метод
spaces.search()