Con el recurso MessagePin
en la API de Chat, tu app puede fijar y dejar de fijar mensajes, y
obtener una lista de todos los mensajes fijados en los espacios de Google Chat. Los mensajes fijados son visibles en la interfaz de Chat para todos los miembros del espacio. Esta API ayuda a tu app a administrar los mensajes fijados en nombre de un usuario.
Para obtener información sobre cómo los usuarios fijan mensajes en espacios, consulta Cómo fijar mensajes, archivos y vínculos en espacios y mensajes.
Requisitos previos
Node.js
- 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, ícono y descripción para tu app de Chat.
- Instala la biblioteca cliente de Cloud para Node.js .
-
Crea credenciales de ID de cliente de OAuth para una aplicación de escritorio. Para ejecutar la muestra de esta
guía, guarda las credenciales como un archivo JSON llamado
credentials.jsonen tu directorio local.
- Elige un alcance de autorización que admita la autenticación de usuarios.
Consideraciones
- Solo puedes fijar mensajes que ya existen en un espacio. No puedes crear un mensaje nuevo y fijarlo en la misma solicitud.
- No puedes fijar mensajes que solo sean visibles para ti. Por ejemplo, no puedes fijar mensajes privados que recibes de una app.
- Cada espacio de Chat puede tener hasta 100 mensajes fijados. Si tu app intenta fijar un mensaje 101, la API muestra un error.
Fija un mensaje
Para fijar un mensaje con la autenticación de usuarios, pasa lo siguiente en tu solicitud:
- Especifica el alcance de autorización
chat.spaces.pinsochat.spaces. - Llama a
messagePins.create. - Especifica el
parent(el nombre del espacio) y proporciona unbodycon el nombre del recursomessagedel mensaje original.
En el siguiente ejemplo, se fija un mensaje en un espacio:
Python
- En tu directorio de trabajo, crea un archivo llamado
chat_pin_message.py. Incluye el siguiente código en
chat_pin_message.py:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"] def main(): ''' Authenticates with Chat API via user credentials, then pins a message in a space. ''' # 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. service = build('chat', 'v1', credentials=creds) # Pin a message. result = service.spaces().messagePins().create( # The space to pin the message in. # # Replace SPACE with a space ID or name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to pin. body={ 'message': 'spaces/SPACE/messages/MESSAGE' } ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()En el código, reemplaza lo siguiente:
En tu directorio de trabajo, compila y ejecuta la muestra:
python3 chat_pin_message.py
Deja de fijar mensaje
Para dejar de fijar un mensaje con la autenticación de usuarios, pasa lo siguiente en tu solicitud:
- Especifica el alcance de autorización
chat.spaces.pinsochat.spaces. - Llama a
messagePins.delete. - Establece
nameen el nombre del recursoMessagePinque se borrará.
Sigue estos pasos para dejar de fijar un mensaje:
Python
- En tu directorio de trabajo, crea un archivo llamado
chat_unpin_message.py. Incluye el siguiente código en
chat_unpin_message.py:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins"] def main(): ''' Authenticates with Chat API via user credentials, then unpins a message from a space. ''' # 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. service = build('chat', 'v1', credentials=creds) # Unpin a message. result = service.spaces().messagePins().delete( # The resource name of the message pin to delete. # # Replace SPACE with a space ID or name, and MESSAGE with the message ID. name='spaces/SPACE/messagePins/MESSAGE' ).execute() print(result) if __name__ == '__main__': main()En el código, reemplaza lo siguiente:
En tu directorio de trabajo, compila y ejecuta la muestra:
python3 chat_unpin_message.py
Obtén una lista de mensajes fijados
Para obtener una lista de mensajes fijados en los espacios a los que tienes acceso, usa la autenticación de usuarios y pasa lo siguiente en tu solicitud:
- Especifica uno de los alcances de lectura:
chat.spaces.pins.readonly,chat.spaces.readonly,chat.spaces.pinsochat.spaces. - Llama a
messagePins.list. - Especifica
parentcomo el nombre del espacio desde el que se recuperarán los mensajes fijados.
Sigue estos pasos para enumerar los mensajes fijados:
Python
- En tu directorio de trabajo, crea un archivo llamado
chat_list_pinned_messages.py. Incluye el siguiente código en
chat_list_pinned_messages.py:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. SCOPES = ["https://www.googleapis.com/auth/chat.spaces.pins.readonly"] def main(): ''' Authenticates with Chat API via user credentials, then lists pinned messages in a space. ''' # 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. service = build('chat', 'v1', credentials=creds) # List pinned messages. result = service.spaces().messagePins().list( # The space to list pinned messages from. # # Replace SPACE with a space ID or name. parent='spaces/SPACE' ).execute() print(result) if __name__ == '__main__': main()En el código, reemplaza
SPACEpor el ID del espacio delname.En tu directorio de trabajo, compila y ejecuta la muestra:
python3 chat_list_pinned_messages.py
Temas relacionados
- Da formato a un mensaje.
- Borra un mensaje.
- Obtén detalles sobre un mensaje.
- Enumera los mensajes en un espacio.
- Actualiza un mensaje.
- Envíales un mensaje.