Este guia explica como um administrador do Google Workspace pode usar o
método search()
em um
recurso Space
da
API Google Chat para gerenciar espaços nomeados em toda a organização e realizar
tarefas administrativas.
Como administrador do Google Workspace, você só pode usar a API Chat
para gerenciar espaços nomeados, que são definidos como um
SpaceType
de
SPACE
. Os espaços nomeados são lugares permanentes onde as pessoas enviam mensagens,
compartilham arquivos e colaboram. Não é possível usar a API Chat para gerenciar mensagens diretas (MDs) ou chats em grupo.
O
recurso Space
representa um lugar onde pessoas e apps do Chat podem enviar mensagens,
compartilhar arquivos e colaborar. Há vários tipos de espaços:
- As mensagens diretas (DMs) são conversas entre dois usuários ou entre um usuário e um app do Chat.
- Os chats em grupo são conversas entre três ou mais usuários e apps de chat.
- Os espaços nomeados são lugares permanentes onde as pessoas enviam mensagens, compartilham arquivos e colaboram.
Como administrador do Google Workspace, você pode usar a API Chat para pesquisar e gerenciar espaços nomeados na sua organização das seguintes maneiras:
- Auditar espaços na organização. Usando o método
search()
, é possível extrair uma lista de todos os espaços de uma organização com informações detalhadas sobre as configurações e os metadados de cada espaço, como data de criação, data da última atividade, número de membros, status da configuração de histórico e possibilidade de convidar pessoas externas. - Encontre e exclua espaços inativos. Com o método
search()
, você pode encontrar e excluir espaços não usados desde uma data e hora específicas. Para mais detalhes e exemplos de código, consulte Encontrar e excluir espaços inativos. - Exportar uma lista de espaços com base em critérios de pesquisa. Usando o método
search()
, é possível recuperar uma lista de espaços que atendem aos critérios especificados emquery
e exportar os resultados para um arquivo CSV para análise. - Encontre e entre em contato com os administradores do espaço. Com o método
search()
, é possível recuperar uma lista de todos os espaços em uma organização e usar o métodomembers.list()
para recuperar uma lista de todos os membros do espaço que são administradores. - Encontre espaços sem administradores designados. Usando o método
search()
, é possível recuperar uma lista de todos os espaços em uma organização e usar o métodomembers.list()
para recuperar uma lista de espaços que não têm administradores.
Pré-requisitos
Python
- Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.
- Configure seu ambiente:
- Crie um projeto do Google Cloud.
- Configure a tela de permissão OAuth.
- Ative e configure a API Google Chat com um nome, um ícone e uma descrição para seu app do Chat.
- Instale a biblioteca de cliente da API do Google Python.
-
Crie credenciais de ID do cliente OAuth para um aplicativo para computador. Para executar a amostra neste
guia, salve as credenciais como um arquivo JSON chamado
credentials.json
no seu diretório local.
- Escolha um escopo de autorização que ofereça suporte à autenticação do usuário.
- Você precisa ter privilégios de administrador para gerenciar conversas no Chat e nos espaços na sua organização do Google Workspace.
Chamar a API Google Chat como administrador
Para autenticar como um usuário com privilégios de administrador, é necessário transmitir o seguinte na sua solicitação:
- Especifique um escopo de autorização que permita usar a autenticação do usuário com privilégios de administrador.
- Defina o campo
useAdminAccess
comotrue
Esta seção mostra os seguintes exemplos de como chamar a API Chat como administrador:
- Pesquise espaços chamando o método
search()
. - Encontre e exclua espaços inativos na sua organização chamando o método
search()
para retornar uma lista de espaços inativos e, em seguida, chamando o métododelete()
para excluí-los.
Pesquisar espaços em toda a organização
Este exemplo explica como os administradores do Google Workspace podem usar o método
search()
no recurso Space
da API Chat para pesquisar
espaços em uma organização com base em critérios especificados.
Para chamar o método search()
com
autenticação de usuário e
privilégios de administrador,
especifique o seguinte na solicitação:
- Especifique o escopo de autorização
chat.admin.spaces
ouchat.admin.spaces.readonly
. - Especifique
useAdminAccess=true
. - Especifique os parâmetros de
query
pesquisa para filtrar os resultados:customer = "customers/my_customer"
: obrigatório e o único valor aceito écustomers/my_customer
.spaceType = "SPACE"
: obrigatório e o único valor aceito éSPACE
- Opcional: uma ou mais consultas adicionais para filtrar ainda mais a pesquisa de espaços, como palavras-chave em nomes de exibição (
displayName
), a data de criação (createTime
) ou com base na atividade do espaço (lastActiveTime
).
O código a seguir mostra um exemplo de como usar privilégios de administrador para pesquisar espaços com um nome de exibição que contenha "Hello" e "World", em qualquer combinação:
Python
- No diretório de trabalho, crie um arquivo chamado
search_spaces_for_hello_world.py
. Inclua o seguinte código em
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)
No diretório de trabalho, crie e execute a amostra:
python3 search_spaces_for_hello_world.py
Encontrar e excluir espaços inativos
Este exemplo explica como os administradores do Google Workspace podem usar o método
search()
no recurso Space
da API Chat para encontrar
espaços inativos e excluí-los usando o método delete()
com o
parâmetro useAdminAccess
.
Os espaços inativos do Google Chat, que não estão mais sendo usados, podem ocupar um espaço de armazenamento valioso e criar desordem na interface do usuário. Com o método search()
, os administradores podem encontrar espaços que não foram usados desde uma data e hora específicas, como há dois meses. Depois que a lista de espaços é enumerada, os administradores podem realizar ações neles, como atualizar ou excluir.
Para pesquisar uma lista de espaços inativos e excluir com autenticação de usuário e privilégios de administrador, transmita o seguinte nas suas solicitações:
- Para pesquisar espaços inativos, especifique o seguinte:
- Especifique o escopo de autorização
chat.admin.spaces
ouchat.admin.spaces.readonly
. - Chame o método
search()
no recursoSpaces
. - Defina
INACTIVE_SPACE_DEADLINE
como a data e a hora da última atividade que determina os espaços a serem retornados. - Especifique
useAdminAccess=true
. - Especifique os parâmetros de
query
pesquisa para filtrar os resultados:customer = "customers/my_customer"
: obrigatório, e o único valor compatível écustomers/my_customer
.spaceType = "SPACE"
: obrigatório e o único valor aceito éSPACE
lastActiveTime
: para filtrar sua solicitação e retornar apenas espaços inativos, especifique olastActiveTime
- Especifique o escopo de autorização
- Para excluir os espaços inativos dos resultados da pesquisa, especifique o seguinte:
- Especifique o escopo de autorização
chat.admin.delete
. - Chame o método
delete()
no recursoSpaces
. - Especifique
useAdminAccess=true
.
- Especifique o escopo de autorização
O código a seguir mostra um exemplo de como pesquisar e excluir espaços inativos usando privilégios de administrador:
Python
No diretório de trabalho, crie um arquivo chamado
find_and_delete_inactive_spaces.py
.Inclua o seguinte código em
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()
No código, substitua
INACTIVE_DATE
por uma data e hora no formato AAAA-MM-DDTHH:MM:SS+HH:MM. Por exemplo, "2024-06-01T00:00:00+00:00".No diretório de trabalho, crie e execute a amostra:
python3 find_and_delete_inactive_spaces.py
Temas relacionados
- Excluir espaços
- Listar participantes em um espaço
- Gerenciar espaços do Chat como administrador do Google Workspace
- Método
spaces.search()