En esta guía, se explica cómo un administrador de Google Workspace puede usar el método search()
en un recurso Space
de la API de Google Chat para administrar espacios nombrados en toda su organización y realizar tareas administrativas.
Como administrador de Google Workspace, solo puedes usar la API de Chat para administrar espacios con nombre, que se definen como un SpaceType
de SPACE
. Los espacios con nombre son lugares persistentes en los que las personas envían mensajes, comparten archivos y colaboran. No puedes usar la API de Chat para administrar mensajes directos (MD) ni chats en grupo.
El recurso Space
representa un lugar donde las personas y las apps de Chat pueden enviar mensajes, compartir archivos y colaborar. Existen varios tipos de espacios:
- Los mensajes directos (MD) son conversaciones entre dos usuarios o un usuario y una app de Chat.
- Los chats en grupo son conversaciones entre tres o más usuarios y apps de chat.
- Los espacios con nombre son lugares persistentes en los que las personas envían mensajes, comparten archivos y colaboran.
Como administrador de Google Workspace, puedes usar la API de Chat para buscar y administrar espacios con nombre en tu organización de las siguientes maneras:
- Auditar los espacios de la organización Con el método
search()
, puedes recuperar una lista de todos los espacios de una organización con información detallada sobre la configuración y los metadatos de cada espacio, como la fecha de creación, la fecha de la última actividad, la cantidad de miembros, el estado de la configuración del historial y la capacidad de invitar a invitados externos. - Busca y borra espacios inactivos. Con el método
search()
, puedes encontrar espacios que no se hayan usado desde una fecha y hora específicos, y borrarlos. Para obtener más detalles y código de muestra, consulta Cómo encontrar y borrar espacios inactivos. - Exporta una lista de espacios según los criterios de búsqueda. Con el método
search()
, puedes recuperar una lista de espacios que cumplen con los criterios especificados enquery
y exportar los resultados a un archivo CSV para su análisis. - Busca a los administradores del espacio y comunícate con ellos. Con el método
search()
, puedes recuperar una lista de todos los espacios de una organización y, luego, usar el métodomembers.list()
para recuperar una lista de todos los miembros del espacio que son administradores. - Encuentra espacios sin administradores designados. Con el método
search()
, puedes recuperar una lista de todos los espacios de una organización y, luego, usar el métodomembers.list()
para recuperar una lista de espacios que no tienen ningún administrador.
Requisitos previos
Python
- Una cuenta de Google Workspace para empresas o empresas con acceso a Google Chat
- Configura tu entorno:
- Crea un proyecto de Google Cloud
- Configura la pantalla de consentimiento de OAuth.
- Habilita y configura la API de Google Chat con un nombre, un ícono y una descripción para tu app de Chat.
- Instala la biblioteca cliente de la API de Google para Python.
-
Crea credenciales de ID de cliente de OAuth para una aplicación para computadoras. Para ejecutar la muestra de esta guía, guarda las credenciales como un archivo JSON llamado
client_secrets.json
en tu directorio local.
- Elige un alcance de autorización que admita la autenticación del usuario.
- Debes tener privilegios de administrador para administrar el chat y las conversaciones de los espacios en tu organización de Google Workspace.
Cómo llamar a la API de Google Chat como administrador
Para autenticar como un usuario con privilegios de administrador, debes pasar lo siguiente en tu solicitud:
- Especifica un alcance de autorización que admita el uso de la autenticación de usuarios con privilegios de administrador.
- Configura el campo
useAdminAccess
comotrue
.
En esta sección, se muestran los siguientes ejemplos de cómo llamar a la API de Chat como administrador:
- Busca espacios llamando al método
search()
. - Encuentra y borra espacios inactivos en tu organización llamando al método
search()
para mostrar una lista de espacios que estuvieron inactivos y, luego, llama al métododelete()
para borrarlos.
Busca espacios en tu organización
En este ejemplo, se explica cómo los administradores de Google Workspace pueden usar el método search()
en el recurso Space
de la API de Chat para buscar espacios en una organización según criterios especificados.
Para llamar al método search()
con autenticación de usuario y privilegios de administrador, debes especificar lo siguiente en la solicitud:
- Especifica el permiso de autorización
chat.admin.spaces
ochat.admin.spaces.readonly
. - Especifica
useAdminAccess=true
. - Especifica los parámetros de búsqueda
query
para filtrar los resultados:customer = "customers/my_customer"
: Es obligatorio, y el único valor admitido escustomers/my_customer
.spaceType = "SPACE"
: Es obligatorio, y el único valor admitido esSPACE
.- De manera opcional, una o más consultas adicionales para filtrar aún más la búsqueda de espacios, como palabras clave en los nombres visibles (
displayName
), la fecha de creación (createTime
) o según la actividad del espacio (lastActiveTime
).
En el siguiente código, se muestra un ejemplo de cómo usar privilegios de administrador para buscar espacios con un nombre visible que contenga "Hello" y "World", en cualquier combinación:
Python
- En tu directorio de trabajo, crea un archivo llamado
search_spaces_for_hello_world.py
. Incluye el siguiente código en
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)
En tu directorio de trabajo, compila y ejecuta la muestra:
python3 search_spaces_for_hello_world.py
Busca y borra espacios inactivos
En este ejemplo, se explica cómo los administradores de Google Workspace pueden usar el método search()
en el recurso Space
de la API de Chat para encontrar espacios inactivos y, luego, borrarlos con el método delete()
con el parámetro useAdminAccess
.
Los espacios inactivos de Google Chat, que ya no se usan de forma activa, pueden ocupar espacio de almacenamiento valioso y generar desorden en la interfaz de usuario. Con el método search()
, los administradores pueden encontrar espacios que no se hayan usado desde una fecha y hora específicas, como hace dos meses. Después de enumerar la lista de espacios, los administradores pueden realizar acciones en ellos, como actualizarlos o borrarlos.
Para buscar una lista de espacios inactivos y, luego, borrarlos con autenticación de usuario y privilegios de administrador, pasa lo siguiente en tus solicitudes:
- Para buscar espacios inactivos, especifica lo siguiente:
- Especifica el permiso de autorización
chat.admin.spaces
ochat.admin.spaces.readonly
. - Llama al método
search()
en el recursoSpaces
. - Establece
INACTIVE_SPACE_DEADLINE
en la fecha y hora de la última actividad que determina los espacios que se mostrarán. - Especifica
useAdminAccess=true
. - Especifica los parámetros de búsqueda
query
para filtrar los resultados:customer = "customers/my_customer"
: Es obligatorio, y el único valor admitido escustomers/my_customer
.spaceType = "SPACE"
: Es obligatorio, y el único valor admitido esSPACE
.lastActiveTime
: Para filtrar tu solicitud de modo que solo muestre espacios inactivos, especificalastActiveTime
.
- Especifica el permiso de autorización
- Para borrar los espacios inactivos de los resultados de la búsqueda, especifica lo siguiente:
- Especifica el alcance de autorización de
chat.admin.delete
. - Llama al método
delete()
en el recursoSpaces
. - Especifica
useAdminAccess=true
.
- Especifica el alcance de autorización de
En el siguiente código, se muestra un ejemplo de cómo buscar espacios inactivos y borrarlos con privilegios de administrador:
Python
En tu directorio de trabajo, crea un archivo llamado
find_and_delete_inactive_spaces.py
.Incluye el siguiente código en
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()
En el código, reemplaza
INACTIVE_DATE
por una fecha y una hora en el formato AAAA-MM-DDTHH:MM:SS+HH:MM. Por ejemplo, "2024-06-01T00:00:00+00:00".En tu directorio de trabajo, compila y ejecuta la muestra:
python3 find_and_delete_inactive_spaces.py
Temas relacionados
- Cómo borrar espacios
- Cómo ver una lista de los miembros de un espacio
- Administra espacios de Chat como administrador de Google Workspace
- Método
spaces.search()