REST Resource: spaces.messages

Recurso: Message

Un mensaje en un espacio de Google Chat

Representación JSON
{
  "name": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "lastUpdateTime": string,
  "deleteTime": string,
  "text": string,
  "formattedText": string,
  "cards": [
    {
      object (Card)
    }
  ],
  "cardsV2": [
    {
      object (CardWithId)
    }
  ],
  "annotations": [
    {
      object (Annotation)
    }
  ],
  "thread": {
    object (Thread)
  },
  "space": {
    object (Space)
  },
  "fallbackText": string,
  "actionResponse": {
    object (ActionResponse)
  },
  "argumentText": string,
  "slashCommand": {
    object (SlashCommand)
  },
  "attachment": [
    {
      object (Attachment)
    }
  ],
  "matchedUrl": {
    object (MatchedUrl)
  },
  "threadReply": boolean,
  "clientAssignedMessageId": string,
  "emojiReactionSummaries": [
    {
      object (EmojiReactionSummary)
    }
  ],
  "deletionMetadata": {
    object (DeletionMetadata)
  },
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  },
  "attachedGifs": [
    {
      object (AttachedGif)
    }
  ]
}
Campos
name

string

Nombre del recurso con el formato spaces/*/messages/*.

Ejemplo: spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB

sender

object (User)

Solo salida. El usuario que creó el mensaje. Si tu app de Chat se autentica como un usuario, el resultado propaga el name y type del usuario.

createTime

string (Timestamp format)

Para los espacios creados en Chat, la hora a la que se creó el mensaje. Este campo es de solo salida, excepto cuando se usa en espacios importados.

Para los espacios importados, configura este campo con la marca de tiempo histórica en la que se creó el mensaje en la fuente a fin de conservar la hora de creación original.

lastUpdateTime

string (Timestamp format)

Solo salida. La hora en la que un usuario editó el mensaje por última vez. Si el mensaje nunca se editó, este campo estará vacío.

deleteTime

string (Timestamp format)

Solo salida. La hora a la que se borró el mensaje en Google Chat. Si el mensaje nunca se borra, este campo estará vacío.

text

string

Es el cuerpo con texto sin formato del mensaje. El primer vínculo a una imagen, un video o una página web genera un chip de vista previa. También puedes @mencionar a un usuario de Google Chat o a todas las personas del espacio.

Para obtener información sobre cómo crear mensajes de texto, consulta Cómo enviar un mensaje de texto.

formattedText

string

Solo salida. Contiene el mensaje text con lenguaje de marcado agregado para comunicar el formato. Es posible que este campo no capture todo el formato visible en la IU, pero incluye lo siguiente:

  • Sintaxis de lenguaje de marcado para bloques de negrita, cursiva, tachado, monoespacial y monoespacial
  • Menciones de usuarios con el formato <users/{user}>.
  • Hipervínculos personalizados con el formato <{url}|{rendered_text}>, donde la primera string es la URL y la segunda es el texto renderizado, por ejemplo, <http://example.com|custom text>.
  • Emojis personalizados con el formato :{emoji_name}:, por ejemplo, :smile:. Esto no se aplica a los emojis Unicode, como U+1F600 para un emoji con una cara sonriente.

Para obtener más información, consulta Cómo ver el formato de texto enviado en un mensaje

cards[]
(deprecated)

object (Card)

Obsoleto: usa cardsV2 en su lugar.

Tarjetas enriquecidas, interactivas y con formato que puedes usar para mostrar elementos de la IU, como textos con formato, imágenes en las que se puede hacer clic y botones. Por lo general, las tarjetas se muestran debajo del cuerpo con texto sin formato del mensaje. cards y cardsV2 pueden tener un tamaño máximo de 32 KB.

cardsV2[]

object (CardWithId)

Array de tarjetas.

Solo las apps de Chat pueden crear tarjetas. Si tu app de Chat se autentica como un usuario, los mensajes no pueden contener tarjetas.

Para obtener más información sobre las tarjetas y cómo crearlas, consulta Cómo diseñar IUs dinámicas, interactivas y coherentes con tarjetas.

annotations[]

object (Annotation)

Solo salida. Son anotaciones asociadas con el text en este mensaje.

thread

object (Thread)

La conversación a la que pertenece el mensaje. Para ver ejemplos de uso, consulta Cómo iniciar o responder una conversación de mensajes.

space

object (Space)

Si tu app de Chat se autentica como un usuario, el resultado propaga el espacio name.

fallbackText

string

Descripción de texto sin formato de las tarjetas del mensaje, que se usa cuando no se pueden mostrar las tarjetas reales; por ejemplo, notificaciones móviles.

actionResponse

object (ActionResponse)

Solo entrada. Parámetros que una app de Chat puede usar para configurar cómo se publica su respuesta

argumentText

string

Solo salida. Cuerpo con texto sin formato del mensaje sin todas las menciones de la app de Chat.

slashCommand

object (SlashCommand)

Solo salida. Información del comando de barra, si corresponde.

attachment[]

object (Attachment)

Archivo adjunto subido por el usuario.

matchedUrl

object (MatchedUrl)

Solo salida. Una URL en spaces.messages.text que coincide con un patrón de vista previa del vínculo. Si deseas obtener más información, consulta Cómo obtener una vista previa de los vínculos.

threadReply

boolean

Solo salida. Cuando es true, el mensaje es una respuesta en una conversación. Si se muestra false, el mensaje se verá en la conversación de nivel superior del espacio como el primer mensaje de una conversación o como un mensaje sin respuestas en forma de conversación.

Si el espacio no admite respuestas en conversaciones, este campo siempre será false.

clientAssignedMessageId

string

Un nombre personalizado para un mensaje de Chat que se asigna al momento de su creación. Debe comenzar con client- y contener solo letras minúsculas, números y guiones de hasta 63 caracteres de longitud. Especifica este campo para obtener, actualizar o borrar el mensaje con el valor especificado. La asignación de un nombre personalizado permite que una app de Chat recupere el mensaje sin guardar el name del mensaje del cuerpo de la respuesta que se mostró cuando se creó el mensaje. La asignación de un nombre personalizado no reemplaza el campo name generado, el nombre del recurso del mensaje. En su lugar, establece el nombre personalizado como el campo clientAssignedMessageId, al que puedes hacer referencia mientras procesas operaciones posteriores, como actualizar o borrar el mensaje. Para ver ejemplos de uso, consulta Cómo nombrar un mensaje creado.

emojiReactionSummaries[]

object (EmojiReactionSummary)

Solo salida. Lista de resúmenes de reacciones con emojis del mensaje.

deletionMetadata

object (DeletionMetadata)

Solo salida. Información sobre un mensaje borrado. Cuando se configura deleteTime, se borra un mensaje.

quotedMessageMetadata

object (QuotedMessageMetadata)

Solo salida. Información sobre un mensaje citado por un usuario de Google Chat en un espacio. Los usuarios de Google Chat pueden citar un mensaje para responderlo.

attachedGifs[]

object (AttachedGif)

Solo salida. Son las imágenes GIF adjuntas al mensaje.

Tarjeta con ID

Una tarjeta en un mensaje de Google Chat

Solo las apps de Chat pueden crear tarjetas. Si tu app de Chat se autentica como un usuario, el mensaje no puede contener tarjetas.

Representación JSON
{
  "cardId": string,
  "card": {
    object (Card)
  }
}
Campos
cardId

string

Es obligatorio si el mensaje contiene varias tarjetas. Es el identificador único de una tarjeta en un mensaje.

card

object (Card)

Una tarjeta El tamaño máximo es de 32 KB.

Anotación

Solo salida. Anotaciones asociadas con el cuerpo de texto sin formato del mensaje. Para agregar formato básico a los mensajes de texto, consulta Cómo dar formato a los mensajes de texto.

Ejemplo de cuerpo del mensaje de texto sin formato:

Hello @FooBot how are you!"

Los metadatos de anotaciones correspondientes son los siguientes:

"annotations":[{
  "type":"USER_MENTION",
  "startIndex":6,
  "length":7,
  "userMention": {
    "user": {
      "name":"users/{user}",
      "displayName":"FooBot",
      "avatarUrl":"https://goo.gl/aeDtrS",
      "type":"BOT"
    },
    "type":"MENTION"
   }
}]
Representación JSON
{
  "type": enum (AnnotationType),
  "length": integer,
  "startIndex": integer,

  // Union field metadata can be only one of the following:
  "userMention": {
    object (UserMentionMetadata)
  },
  "slashCommand": {
    object (SlashCommandMetadata)
  }
  // End of list of possible types for union field metadata.
}
Campos
type

enum (AnnotationType)

Es el tipo de esta anotación.

length

integer

Longitud de la substring en el cuerpo del mensaje de texto sin formato a la que corresponde esta anotación.

startIndex

integer

Índice de inicio (basado en 0, inclusivo) en el cuerpo del mensaje de texto sin formato al que corresponde esta anotación.

Campo de unión metadata. Metadatos adicionales sobre la anotación. Las direcciones (metadata) solo pueden ser una de las siguientes opciones:
userMention

object (UserMentionMetadata)

Los metadatos de la mención del usuario.

slashCommand

object (SlashCommandMetadata)

Los metadatos para un comando de barra.

AnnotationType

Es el tipo de anotación.

Enumeradores
ANNOTATION_TYPE_UNSPECIFIED El valor predeterminado de la enumeración. No utilizar.
USER_MENTION Se menciona a un usuario.
SLASH_COMMAND Se invoca un comando de barra.

Metadatos de mención del usuario

Metadatos de anotaciones para menciones de usuarios (@).

Representación JSON
{
  "user": {
    object (User)
  },
  "type": enum (Type)
}
Campos
user

object (User)

El usuario mencionado.

type

enum (Type)

Es el tipo de mención del usuario.

Tipo

Enumeradores
TYPE_UNSPECIFIED El valor predeterminado de la enumeración. No utilizar.
ADD Agregar usuario al espacio.
MENTION Mencionar al usuario en el espacio.

SlashCommandMetadata

Metadatos de anotación para los comandos de barra (/).

Representación JSON
{
  "bot": {
    object (User)
  },
  "type": enum (Type),
  "commandName": string,
  "commandId": string,
  "triggersDialog": boolean
}
Campos
bot

object (User)

La app de Chat cuyo comando se invocó.

type

enum (Type)

El tipo de comando de barra.

commandName

string

El nombre del comando de barra invocado.

commandId

string (int64 format)

El ID del comando de barra invocado.

triggersDialog

boolean

Indica si el comando de barra es para un diálogo.

Tipo

Enumeradores
TYPE_UNSPECIFIED El valor predeterminado de la enumeración. No utilizar.
ADD Agrega la app de Chat al espacio.
INVOKE Invoca el comando de barra en el espacio.

Conversación

Una conversación en un espacio de Google Chat Para ver ejemplos de uso, consulta Cómo iniciar o responder una conversación de mensajes.

Si especificas un subproceso al crear un mensaje, puedes configurar el campo messageReplyOption para determinar qué sucede si no se encuentra un subproceso que coincida.

Representación JSON
{
  "name": string,
  "threadKey": string
}
Campos
name

string

Solo salida. Es el nombre del recurso del subproceso.

Ejemplo: spaces/{space}/threads/{thread}

threadKey

string

Opcional. Entrada para crear o actualizar un subproceso. De lo contrario, solo salida. Es el ID del subproceso. Admite hasta 4,000 caracteres.

Este ID es exclusivo de la app de Chat que lo establece. Por ejemplo, si varias apps de Chat crean un mensaje con la misma clave de conversación, los mensajes se publican en diferentes conversaciones. Si, en cambio, quieres responder en una conversación creada por una persona o por otra app de Chat, especifica el campo name de la conversación.

ActionResponse

Parámetros que una app de Chat puede usar para configurar cómo se publica su respuesta

Representación JSON
{
  "type": enum (ResponseType),
  "url": string,
  "dialogAction": {
    object (DialogAction)
  }
}
Campos
type

enum (ResponseType)

Solo entrada. El tipo de respuesta de la app de Chat.

url

string

Solo entrada. URL para que los usuarios se autentiquen o configuren. (Solo para REQUEST_CONFIG tipos de respuesta).

dialogAction

object (DialogAction)

Solo entrada. Es una respuesta a un evento relacionado con un diálogo. Debe estar acompañado de ResponseType.Dialog.

Tipo de respuesta

El tipo de respuesta de la app de Chat.

Enumeradores
TYPE_UNSPECIFIED Es el tipo predeterminado que se controla como NEW_MESSAGE.
NEW_MESSAGE Publicar como un mensaje nuevo en el tema.
UPDATE_MESSAGE Actualiza el mensaje de la app de Chat. Esto solo se permite en un evento CARD_CLICKED en el que el tipo de remitente del mensaje es BOT.
UPDATE_USER_MESSAGE_CARDS Actualizar las tarjetas en el mensaje de un usuario Esto solo se permite como respuesta a un evento MESSAGE con una URL que coincida o un evento CARD_CLICKED en el que el tipo de remitente del mensaje es HUMAN. Se ignora el texto.
REQUEST_CONFIG Solicitar al usuario una configuración o autenticación adicional de forma privada
DIALOG Presenta un diálogo.

Acción de diálogo

Contiene un diálogo y un código de estado de solicitud.

Representación JSON
{
  "actionStatus": {
    object (ActionStatus)
  },

  // Union field action can be only one of the following:
  "dialog": {
    object (Dialog)
  }
  // End of list of possible types for union field action.
}
Campos
actionStatus

object (ActionStatus)

Solo entrada. Estado de una solicitud para invocar o enviar un diálogo. Muestra un estado y un mensaje a los usuarios, si es necesario. Por ejemplo, en caso de error o éxito.

Campo de unión action.

action puede ser una de las siguientes opciones:

dialog

object (Dialog)

Solo entrada. Diálogo para la solicitud.

Dialog

Wrapper alrededor del cuerpo de la tarjeta del diálogo.

Representación JSON
{
  "body": {
    object (Card)
  }
}
Campos
body

object (Card)

Solo entrada. Cuerpo del diálogo, que se renderiza en una ventana modal. Las apps de Google Chat no admiten las siguientes entidades de tarjetas: DateTimePicker y OnChangeAction.

Estado de acción

Representa el estado de una solicitud para invocar o enviar un diálogo.

Representación JSON
{
  "statusCode": enum (Code),
  "userFacingMessage": string
}
Campos
statusCode

enum (Code)

Es el código de estado.

userFacingMessage

string

Es el mensaje que se envía a los usuarios sobre el estado de su solicitud. Si no se configura, se envía un mensaje genérico basado en statusCode.

Código

Los códigos de error canónicos para las API de gRPC.

A veces, es posible que se apliquen varios códigos de error. Los servicios deben mostrar el código de error más específico que corresponda. Por ejemplo, es preferible OUT_OF_RANGE en lugar de FAILED_PRECONDITION si se aplican ambos códigos. Del mismo modo, prefiere NOT_FOUND o ALREADY_EXISTS en lugar de FAILED_PRECONDITION.

Enumeradores
OK

No es un error. que se muestran con éxito.

Asignación HTTP: 200 OK

CANCELLED

La operación se canceló (por lo general, la cancela el emisor).

Asignación HTTP: 499 Solicitudes cerradas por el cliente

UNKNOWN

Error desconocido Por ejemplo, este error puede mostrarse cuando un valor Status recibido de otro espacio de direcciones pertenece a un espacio de error desconocido en este espacio de direcciones. Además, los errores generados por API que no muestran suficiente información sobre el error pueden convertirse en este error.

Asignación HTTP: Error interno del servidor 500

INVALID_ARGUMENT

El cliente especificó un argumento no válido. Ten en cuenta que esto difiere de FAILED_PRECONDITION. INVALID_ARGUMENT indica los argumentos que son problemáticos sin importar el estado del sistema (p.ej., un nombre de archivo con formato incorrecto).

Asignación HTTP: 400 Solicitud incorrecta

DEADLINE_EXCEEDED

El plazo venció antes de que la operación se pudiera completar. En el caso de las operaciones que cambian el estado del sistema, es probable que se muestre este error incluso si la operación se completó correctamente. Por ejemplo, una respuesta correcta desde un servidor podría haberse retrasado lo suficiente como para que el plazo venciera.

Asignación HTTP: Tiempo de espera de la puerta de enlace 504

NOT_FOUND

No se encontró alguna entidad solicitada (p. ej., un archivo o un directorio).

Nota para los desarrolladores de servidores: si se niega una solicitud a una clase completa de usuarios, como el lanzamiento gradual de funciones o una lista de permisos no documentada, se puede usar NOT_FOUND. Si se niega una solicitud para algunos usuarios dentro de una clase de usuarios, como el control de acceso basado en usuarios, se debe usar PERMISSION_DENIED

Asignación HTTP: 404 No encontrado

ALREADY_EXISTS

La entidad que un cliente intentó crear (p.ej., un archivo o un directorio) ya existe.

Asignación HTTP: 409 Conflicto

PERMISSION_DENIED

El emisor de la llamada no tiene permiso para ejecutar la operación especificada. No se debe usar PERMISSION_DENIED para los rechazos causados por el agotamiento de algún recurso (en su lugar, usa RESOURCE_EXHAUSTED para esos errores). No se debe usar PERMISSION_DENIED si no se puede identificar al emisor (en su lugar, usa UNAUTHENTICATED para esos errores). Este código de error no sugiere que la solicitud sea válida o que la entidad solicitada exista o satisfaga otras condiciones previas.

Asignación HTTP: 403 Prohibido

UNAUTHENTICATED

La solicitud no tiene credenciales de autenticación válidas para la operación.

Asignación HTTP: 401 No autorizado

RESOURCE_EXHAUSTED

Algunos recursos se agotaron, tal vez una cuota por usuario, o tal vez se agotó el espacio de todo el sistema de archivos.

Asignación HTTP: 429 Demasiadas solicitudes

FAILED_PRECONDITION

La operación se rechazó debido a que el sistema no se encuentra en un estado necesario para la ejecución de la operación. Por ejemplo, el directorio que se borrará no está vacío, se aplicará una operación rmdir a un directorio que no sea de directorio, etcétera.

Los implementadores de servicios pueden usar los siguientes lineamientos para decidir entre FAILED_PRECONDITION, ABORTED y UNAVAILABLE: (a) Usa UNAVAILABLE si el cliente puede reintentar solo la llamada con errores. (b) Usa ABORTED si el cliente debe reintentarlo en un nivel superior. Por ejemplo, cuando falla una prueba y un conjunto especificados por el cliente, lo que indica que el cliente debe reiniciar una secuencia de lectura-modificación-escritura. (c) Usa FAILED_PRECONDITION si el cliente no debe volver a intentar hasta que el estado del sistema se haya corregido de forma explícita. Por ejemplo, si un "rmdir" falla porque el directorio no está vacío, se debe mostrar FAILED_PRECONDITION, ya que el cliente no debe volver a intentarlo a menos que se borren los archivos del directorio.

Asignación HTTP: 400 Solicitud incorrecta

ABORTED

La operación se anuló, generalmente debido a un problema de simultaneidad, como una falla en la verificación del secuenciador o la anulación de la transacción.

Consulta los lineamientos anteriores para decidir entre FAILED_PRECONDITION, ABORTED y UNAVAILABLE.

Asignación HTTP: 409 Conflicto

OUT_OF_RANGE

La operación se intentó fuera del rango válido. Por ejemplo, buscar o leer el final del archivo.

A diferencia de INVALID_ARGUMENT, este error indica un problema que se puede solucionar si cambia el estado del sistema. Por ejemplo, un sistema de archivos de 32 bits generará INVALID_ARGUMENT si se le pide que lea en un desplazamiento que no esté en el rango [0,2^32-1], pero generará OUT_OF_RANGE si se le pide leer. desde un desplazamiento después del tamaño de archivo actual

Hay una leve superposición entre FAILED_PRECONDITION y OUT_OF_RANGE. Recomendamos usar OUT_OF_RANGE (el error más específico) cuando se aplique para que los emisores que iteran a través de un espacio puedan buscar con facilidad un error OUT_OF_RANGE a fin de detectar cuando finalicen.

Asignación HTTP: 400 Solicitud incorrecta

UNIMPLEMENTED

La operación no se implementó, no se admite o no está habilitada en este servicio.

Asignación HTTP: 501 No implementado

INTERNAL

Errores internos. Esto significa que algunos invariantes que espera el sistema subyacente están rotos. Este código de error está reservado para errores graves.

Asignación HTTP: Error interno del servidor 500

UNAVAILABLE

El servicio no está disponible actualmente. Lo más probable es que esta sea una condición transitoria y que se pueda corregir si vuelves a intentar una retirada. Ten en cuenta que no siempre es seguro reintentar operaciones no idempotentes.

Consulta los lineamientos anteriores para decidir entre FAILED_PRECONDITION, ABORTED y UNAVAILABLE.

Asignación HTTP: 503 Servicio no disponible

DATA_LOSS

Daño o pérdida de datos no recuperable.

Asignación HTTP: Error interno del servidor 500

Comando de barra

Un comando de barra en Google Chat

Representación JSON
{
  "commandId": string
}
Campos
commandId

string (int64 format)

El ID del comando de barra invocado.

URL coincidente

Una URL coincidente en un mensaje de Chat Las apps de Chat pueden obtener una vista previa de las URLs coincidentes. Para obtener más información, consulta Cómo obtener una vista previa de los vínculos.

Representación JSON
{
  "url": string
}
Campos
url

string

Solo salida. La URL que coincidió.

Resumen de reacciones con emojis

La cantidad de personas que reaccionaron a un mensaje con un emoji específico

Representación JSON
{
  "emoji": {
    object (Emoji)
  },
  "reactionCount": integer
}
Campos
emoji

object (Emoji)

Emoji asociado con las reacciones.

reactionCount

integer

La cantidad total de reacciones que usaron el emoji asociado.

Eliminación

Información sobre un mensaje borrado. Cuando se configura deleteTime, se borra un mensaje.

Representación JSON
{
  "deletionType": enum (DeletionType)
}
Campos
deletionType

enum (DeletionType)

Indica quién borró el mensaje.

Tipo de eliminación

Quién borró el mensaje y cómo se eliminó.

Enumeradores
DELETION_TYPE_UNSPECIFIED Este valor no se usa.
CREATOR El usuario borró su propio mensaje.
SPACE_OWNER El propietario del espacio borró el mensaje.
ADMIN Un administrador de Google Workspace borró el mensaje.
APP_MESSAGE_EXPIRY Una app de Chat borró su propio mensaje cuando venció.
CREATOR_VIA_APP Una app de Chat borró el mensaje en nombre del usuario.
SPACE_OWNER_VIA_APP Una app de Chat borró el mensaje en nombre del propietario del espacio.

QuotedMessageMetadata

Información sobre un mensaje citado.

Representación JSON
{
  "name": string,
  "lastUpdateTime": string
}
Campos
name

string

Solo salida. Nombre de recurso del mensaje citado.

Formato: spaces/{space}/messages/{message}

lastUpdateTime

string (Timestamp format)

Solo salida. La marca de tiempo del momento en que se creó el mensaje citado o cuando se actualizó por última vez.

GIF adjunto

Una imagen GIF especificada por una URL.

Representación JSON
{
  "uri": string
}
Campos
uri

string

Solo salida. La URL que aloja la imagen GIF.

Métodos

create

Crea un mensaje en un espacio de Google Chat.

delete

Permite borrar un mensaje.

get

Muestra detalles sobre un mensaje.

list

Muestra una lista de los mensajes de un espacio del que es miembro el emisor, incluidos los mensajes de los espacios y miembros bloqueados.

patch

Actualiza un mensaje.

update

Actualiza un mensaje.