REST Resource: spaces.messages

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Recurso: Message

Un mensaje en Google Chat

Representación JSON
{
  "name": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "lastUpdateTime": string,
  "deleteTime": string,
  "text": 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)
  }
}
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 usuario, el resultado propaga el usuario name y type.

createTime

string (Timestamp format)

Solo salida. La hora en la que se creó el mensaje en el servidor de Google Chat.

lastUpdateTime

string (Timestamp format)

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

deleteTime

string (Timestamp format)

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

text

string

Cuerpo de texto sin formato del mensaje El primer vínculo a una imagen, un video, una página web o cualquier otro elemento con capacidad de vista previa genera un chip de vista previa.

cards[]
(deprecated)

object (Card)

Obsoleto: usa cardsV2 en su lugar.

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

cardsV2[]

object (CardWithId)

Tarjetas interactivas y con formato enriquecido que muestran elementos de IU y widgets editables, por ejemplo:

  • Texto con formato
  • Botones
  • Imágenes en las que se puede hacer clic
  • Casillas de verificación
  • Botones de selección
  • Widgets de entrada.

Por lo general, las tarjetas se muestran debajo del cuerpo del texto de un mensaje de Chat, pero pueden aparecer en otras situaciones, como diálogos. Cada tarjeta puede tener un tamaño máximo de 32 KB.

El cardId es un identificador único entre tarjetas del mismo mensaje y para identificar los valores de entrada del usuario.

Entre los widgets admitidos, se incluyen los siguientes:

  • TextParagraph
  • DecoratedText
  • Image
  • ButtonList
  • Divider
  • TextInput
  • SelectionInput
  • Grid
annotations[]

object (Annotation)

Solo salida. Anotaciones asociadas con el texto en este mensaje.

thread

object (Thread)

La conversación a la que pertenece el mensaje. Por ejemplo, consulta Cómo iniciar o responder una conversación de mensaje.

space

object (Space)

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

fallbackText

string

Una descripción de texto sin formato de las tarjetas del mensaje, que se utiliza cuando no se pueden mostrar las tarjetas reales (p.ej., notificaciones para celulares).

actionResponse

object (ActionResponse)

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

argumentText

string

Solo salida. El cuerpo del mensaje es de texto sin formato y se quitan 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 de vínculos. Para obtener más información, consulta Vínculos de vista previa.

threadReply

boolean

Solo salida. Cuando es true, el mensaje es una respuesta en una conversación de respuesta. Cuando es false, el mensaje está visible en la conversación de nivel superior del espacio como el primer mensaje de una conversación o un mensaje sin conversaciones.

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

clientAssignedMessageId

string

Un nombre personalizado para un mensaje de Chat asignado al momento de su creación. Debe comenzar con client- y contener solo letras minúsculas, números y guiones de hasta 63 caracteres. Especifica este campo para obtener, actualizar o borrar el mensaje con el valor especificado. Para ver un ejemplo de uso, consulta Asigna un nombre a un mensaje creado.

emojiReactionSummaries[]

object (EmojiReactionSummary)

Solo salida. La lista de resúmenes de reacción con emoji en el mensaje.

deletionMetadata

object (DeletionMetadata)

Solo salida. Información sobre un mensaje borrado. Un mensaje se borra cuando se configura deleteTime.

ID de tarjeta con

Widgets para que especifiquen las apps de chat.

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

string

Obligatorio para los mensajes de cardsV2. Es el identificador especificado por la app de chat para este widget. Alcance de un mensaje

card

object (Card)

Las tarjetas admiten un diseño definido, elementos de IU interactivos, como botones, y rich media, como imágenes. Usa esta tarjeta para presentar información detallada, recopilar información de los usuarios y guiarlos para dar el siguiente paso.

Anotación

Anotaciones asociadas con el cuerpo del texto sin formato del mensaje

Ejemplo de cuerpo del mensaje de texto sin formato:

Hello @FooBot how are you!"

Los metadatos de anotaciones correspondientes:

"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)

El tipo de esta anotación.

length

integer

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

startIndex

integer

Índice de inicio (basado en 0, inclusive) 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

Tipo de anotación.

Enumeradores
ANNOTATION_TYPE_UNSPECIFIED Valor predeterminado para la enumeración. NO USAR.
USER_MENTION Se menciona al usuario.
SLASH_COMMAND Se invoca un comando de barra.

Mención de metadatos del usuario

Metadatos de anotación para las menciones de usuarios (@).

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

object (User)

El usuario mencionó.

type

enum (Type)

Es el tipo de mención del usuario.

Tipo

Enumeradores
TYPE_UNSPECIFIED Valor predeterminado para la enumeración. NO USAR.
ADD Agregar usuario al espacio.
MENTION Mencionar al usuario en el espacio.

Comandos de barra de barra

Metadatos de anotación para 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 de comando del comando de barra invocado.

triggersDialog

boolean

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

Tipo

Enumeradores
TYPE_UNSPECIFIED Valor predeterminado para la enumeración. NO USAR.
ADD Agregar la app de Chat al espacio.
INVOKE Invoca el comando de barra en el espacio.

Conversación

Una conversación en Google Chat

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

string

Nombre del recurso del subproceso.

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

threadKey

string

Opcional. Es el identificador de subproceso opaco. Para iniciar o agregar una conversación, crea un mensaje y especifica un threadKey o un thread.name. Por ejemplo, consulta Cómo iniciar o responder una conversación de mensaje.

Para otras solicitudes, este es un campo de solo salida.

Respuesta a la acción

Los 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 tipos de respuesta de REQUEST_CONFIG).

dialogAction

object (DialogAction)

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

Tipo de respuesta

El tipo de respuesta de la app de Chat.

Enumeradores
TYPE_UNSPECIFIED Tipo predeterminado; se manejará 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 eventos CARD_CLICKED en los que el tipo de remitente del mensaje sea BOT.
UPDATE_USER_MESSAGE_CARDS Actualiza las tarjetas del mensaje de un usuario. Esto solo se permite como respuesta a un evento MESSAGE con una URL coincidente, o como un evento CARD_CLICKED en el que el tipo de remitente del mensaje es HUMANO. Se ignorará el texto.
REQUEST_CONFIG Pídele de forma privada al usuario una autenticación o configuración adicional.
DIALOG Presenta un diálogo.

Acción de diálogo

Contiene un diálogo y un código de estado de la 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. Es el 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. Dialog para la solicitud.

Dialog

Ajuste el 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 representa de forma modal Las apps de Google Chat no admiten las siguientes entidades de tarjeta: DateTimePicker, OnChangeAction.

Estado de la 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)

El código de estado

userFacingMessage

string

El mensaje que se envía a los usuarios acerca del estado de su solicitud. Si no se establece, se envía un mensaje genérico basado en el statusCode.

Programa

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 reintentar en un nivel superior. Por ejemplo, cuando falla una prueba y un conjunto especificados por el cliente, el cliente debe reiniciar la 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 reintentarlo, 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)

Es el ID del comando de barra invocado.

Coincidencia de URL

Corresponde a una URL coincidente en un mensaje de Chat. Las apps de chat pueden obtener una vista previa de las URL coincidentes. Para obtener más información, consulta Vínculos de vista previa.

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

string

Solo salida. La URL que coincidió.

Resumen de emojis

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

Cantidad total de reacciones con los emoji asociados.

DeletionMetadata

Información sobre un mensaje borrado. Un mensaje se borra cuando se configura deleteTime.

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

enum (DeletionType)

Indica quién eliminó el mensaje.

Tipo de supresión

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

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.

Métodos

create

Crea un mensaje.

delete

Borra un mensaje.

get

Muestra un mensaje.

list

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

patch

Actualiza un mensaje.

update

Actualiza un mensaje.