Method: spaces.messages.create

Crea un mensaje en un espacio de Google Chat. Para ver un ejemplo, consulta Envía un mensaje.

Admite los siguientes tipos de autenticación:

  • Autenticación de la app con el alcance de autorización:
    • https://www.googleapis.com/auth/chat.bot
  • Autenticación de usuarios con uno de los siguientes permisos de autorización:
    • https://www.googleapis.com/auth/chat.messages.create
    • https://www.googleapis.com/auth/chat.messages
    • https://www.googleapis.com/auth/chat.import (solo espacios en modo de importación)

Chat atribuye el remitente del mensaje de manera diferente según el tipo de autenticación que uses en tu solicitud.

En la siguiente imagen, se muestra cómo Chat atribuye un mensaje cuando usas la autenticación de la app. En el chat, la app de Chat aparece como remitente del mensaje. El contenido del mensaje puede incluir texto (text), tarjetas (cardsV2) y widgets de accesorios (accessoryWidgets).

Mensaje enviado con autenticación de la app

En la siguiente imagen, se muestra cómo Chat atribuye un mensaje cuando usas la autenticación de usuarios. Chat muestra al usuario como remitente del mensaje y atribuye la app de Chat al mensaje mostrando su nombre. El contenido del mensaje solo puede incluir texto (text).

Mensaje enviado con autenticación del usuario

El tamaño máximo del mensaje, incluido su contenido, es de 32,000 bytes.

En el caso de las solicitudes de webhook, la respuesta no contiene el mensaje completo. La respuesta solo completa los campos name y thread.name, además de la información que se incluyó en la solicitud.

Solicitud HTTP

POST https://chat.googleapis.com/v1/{parent=spaces/*}/messages

La URL usa la sintaxis de la transcodificación gRPC.

Parámetros de ruta

Parámetros
parent

string

Obligatorio. Es el nombre del recurso del espacio en el que se creará un mensaje.

Formato: spaces/{space}

Parámetros de consulta

Parámetros
threadKey
(deprecated)

string

Opcional. Obsoleto: Usa thread.thread_key en su lugar. Es el ID del subproceso. Admite hasta 4,000 caracteres. Para iniciar o agregar contenido a una conversación, crea un mensaje y especifica un threadKey o el thread.name. Para ver un ejemplo de uso, consulta Cómo iniciar o responder un hilo de mensajes.

requestId

string

Opcional. Es un ID único para esta solicitud. Se recomienda usar un UUID aleatorio. Si se especifica un ID de solicitud, la solicitud se vuelve idempotente, lo que garantiza que varias solicitudes idénticas con el mismo ID de solicitud generen la creación de un solo mensaje. Las solicitudes posteriores con el mismo ID de solicitud devuelven el mensaje existente y no lo actualizan, incluso si los detalles solicitados difieren del estado actual.

Para usar este campo de manera eficaz, haz lo siguiente:

  • Asegúrate de que las solicitudes posteriores sean idénticas y usen las mismas credenciales de autenticación que la solicitud original.
  • Si ya se creó un mensaje con el ID de solicitud proporcionado, la solicitud devolverá ese mensaje. Ten en cuenta que es posible que el mensaje devuelto no esté completo. La API repite el mensaje de tu solicitud con los nombres de recursos asignados por el sistema. Para recuperar los metadatos más recientes del mensaje, llama a messages.get.
  • Si se reutiliza un ID de solicitud existente con un usuario autenticado diferente, se producirá un error.
messageReplyOption

enum (MessageReplyOption)

Opcional. Especifica si un mensaje inicia una conversación o responde a una. Solo se admite en espacios con nombre.

Cuando respondes a las interacciones del usuario, este campo se ignora. En el caso de las interacciones dentro de un hilo, la respuesta se crea en el mismo hilo. De lo contrario, la respuesta se crea como un hilo nuevo.

messageId

string

Opcional. Es un ID personalizado para un mensaje. Las apps de Lets Chat obtienen, actualizan o borran un mensaje sin necesidad de almacenar el ID asignado por el sistema en el nombre del recurso del mensaje (representado en el campo name del mensaje).

El valor de este campo debe cumplir con los siguientes requisitos:

  • Comienza con client-. Por ejemplo, client-custom-name es un ID personalizado válido, pero custom-name no lo es.
  • Contiene hasta 63 caracteres y solo letras minúsculas, números y guiones.
  • Es único dentro de un espacio. Una app de Chat no puede usar el mismo ID personalizado para diferentes mensajes.

Para obtener más información, consulta Cómo nombrar un mensaje.

createMessageNotificationOptions

object (CreateMessageNotificationOptions)

Opcional. Controla el comportamiento de la notificación cuando se publica el mensaje. Para obtener más información, consulta Cómo forzar notificaciones o enviar mensajes silenciosos.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene una instancia de Message.

Cuerpo de la respuesta

Si el proceso se realiza de forma correcta, el cuerpo de la respuesta contiene una instancia recién creada de Message.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

  • https://www.googleapis.com/auth/chat.bot
  • https://www.googleapis.com/auth/chat.import
  • https://www.googleapis.com/auth/chat.messages
  • https://www.googleapis.com/auth/chat.messages.create

Para obtener más información, consulta la Guía de autorización.

MessageReplyOption

Especifica cómo responder un mensaje. Es posible que se agreguen más estados en el futuro.

Enums
MESSAGE_REPLY_OPTION_UNSPECIFIED Predeterminado. Inicia un hilo nuevo. Si usas esta opción, se ignorará cualquier thread ID o threadKey que se incluya.
REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD Crea el mensaje como respuesta al hilo especificado por thread ID o threadKey. Si falla, el mensaje inicia un hilo nuevo.
REPLY_MESSAGE_OR_FAIL Crea el mensaje como respuesta al hilo especificado por thread ID o threadKey. Si se usa un threadKey nuevo, se crea un hilo nuevo. Si falla la creación del mensaje, se devuelve un error NOT_FOUND.

CreateMessageNotificationOptions

Son las opciones para el comportamiento de la notificación cuando se publica el mensaje.

Representación JSON
{
  "notificationType": enum (NotificationType)
}
Campos
notificationType

enum (NotificationType)

Es el tipo de notificación del mensaje.

NotificationType

Son las opciones de tipos de notificaciones para el mensaje.

Enums
NOTIFICATION_TYPE_NONE Es el comportamiento predeterminado. El comportamiento de las notificaciones es similar al que se produce cuando el usuario humano envía el mensaje a través de la IU de Chat: no se envía ninguna notificación al remitente humano.
NOTIFICATION_TYPE_FORCE_NOTIFY

Fuerza la notificación a los destinatarios. Esto omite la configuración de notificaciones del espacio de los usuarios y la configuración de No interrumpir de Chat. Esta opción no ignora la configuración de No interrumpir a nivel del dispositivo.

Requiere autenticación de la app.

NOTIFICATION_TYPE_SILENT

No notifica a los destinatarios ni marca el mensaje como no leído. Esto se comporta de manera similar a cuando el usuario silencia la conversación o habilita la función No interrumpir de Chat.

Requiere autenticación de la app.