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