En esta guía, se explica cómo usar el recurso list
en el recurso Space
de la API de Google Chat para enumerar espacios. En la lista de espacios, se muestra una lista de espacios paginada y filtrable.
El recurso Space
representa un lugar en el que 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 las apps de chat.
- Los espacios con nombre son lugares persistentes en los que las personas envían mensajes, comparten archivos y colaboran.
En una lista de espacios con autenticación de app, se muestran los espacios a los que tiene acceso la app de Chat. En la lista de espacios con Autenticación del usuario, se enumeran los espacios a los que tiene acceso el usuario autenticado.
Requisitos previos
Python
- Python 3.6 o superior
- La herramienta de administración de paquetes pip
Las bibliotecas cliente de Google más recientes para Python. Para instalarlos o actualizarlos, ejecuta el siguiente comando en la interfaz de línea de comandos:
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
Una app de Chat publicada. Para crear y publicar una app de Chat, consulta Cómo compilar una app de Google Chat.
Autorización configurada para la app de Chat. La lista de espacios admite los siguientes métodos de autenticación:
- Autenticación de usuarios con el alcance de autorización
chat.spaces.readonly
ochat.spaces
. - Autenticación de la app con el alcance de autorización
chat.bot
.
- Autenticación de usuarios con el alcance de autorización
Muestra una lista de espacios con la autenticación de usuario
Para enumerar espacios en Google Chat, pasa lo siguiente en tu solicitud:
- Con la autenticación de usuario, especifica el alcance de la autorización
chat.spaces.readonly
ochat.spaces
. - Llama al método
list
en el recursoSpace
.
En el siguiente ejemplo, se enumeran los espacios con nombre y chats en grupo (pero no los mensajes directos, que se filtran) visibles para el usuario autenticado:
Python
- En el directorio de trabajo, crea un archivo llamado
chat_space_list.py
. Incluye el siguiente código en
chat_space_list.py
:import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.spaces.readonly"] def main(): ''' Authenticates with Chat API via user credentials, then lists named spaces and group chats (but not direct messages) visible to the authenticated user. ''' # 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) # Use the service endpoint to call Chat API. result = chat.spaces().list( # An optional filter that returns named spaces or unnamed group chats, # but not direct messages (DMs). filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"' ).execute() # Prints the returned list of spaces. print(result) if __name__ == '__main__': main()
En el directorio de trabajo, compila y ejecuta la muestra:
python3 chat_space_list.py
La API de Chat muestra un array paginado de espacios con nombre y chats en grupo.
Muestra una lista de espacios con la autenticación de app
Para enumerar espacios en Google Chat, pasa lo siguiente en tu solicitud:
- Con la autenticación de la app, especifica el alcance de la autorización
chat.bot
. - Llama al método
list
en el recursoSpace
.
En el siguiente ejemplo, se enumeran los espacios con nombre y los chats en grupo (pero no los mensajes directos) visibles para la app de Chat:
Python
- En el directorio de trabajo, crea un archivo llamado
chat_space_list_app.py
. Incluye el siguiente código en
chat_space_list_app.py
:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Use the service endpoint to call Chat API. result = chat.spaces().list( # An optional filter that returns named spaces or unnamed # group chats, but not direct messages (DMs). filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"' ).execute() print(result)
En el directorio de trabajo, compila y ejecuta la muestra:
python3 chat_space_list_app.py
La API de Chat muestra un array de espacios paginados.
Personaliza la paginación o filtra la lista
Para mostrar una lista de espacios en Google Chat, pasa los siguientes parámetros de consulta opcionales a fin de personalizar la paginación o filtrar los espacios enumerados:
pageSize
: La cantidad máxima de espacios que se mostrarán. Es posible que el servicio muestre menos que este valor. Si no se especifica, se muestran 100 espacios como máximo. El valor máximo es de 1,000; los valores superiores a 1,000 se cambian automáticamente a 1,000.pageToken
: Es un token de página, recibido de una llamada anterior a los espacios de lista. Proporciona este token para recuperar la página siguiente. Cuando se pagina, el valor del filtro debe coincidir con la llamada que proporcionó el token de la página. Pasar un valor diferente puede generar resultados inesperados.filter
: Es un filtro de consulta. Requiere autenticación de usuarios. Para obtener detalles de consultas compatibles, consulta el métodospaces.list
.
Temas relacionados
- Crea un espacio.
- Configura un espacio.
- Obtén detalles sobre un espacio.
- Actualiza un espacio.
- Borrar un espacio.
- Busca un espacio de mensaje directo.