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.

createTime

string (Timestamp format)

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

lastUpdateTime

string (Timestamp format)

Solo salida. La hora a la que el 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 del mensaje en texto sin formato El primer vínculo a una imagen, un video, una página web o algún otro elemento con vista previa genera un chip de vista previa.

cards[]
(deprecated)

object (Card)

Obsoleto: Usa cardsV2 en su lugar.

Tarjetas enriquecidas, interactivas y con formato que se pueden usar para mostrar elementos de la IU, como texto con formato, botones e imágenes en las que se puede hacer clic. Normalmente, las tarjetas se muestran debajo del cuerpo del mensaje de texto sin formato.

cardsV2[]

object (CardWithId)

Tarjetas interactivas y con formato enriquecido que muestran elementos de la IU y widgets editables, como:

  • 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 aparecen debajo del cuerpo del texto de un mensaje de Chat, pero pueden aparecer en otras situaciones, como diálogos.

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

Entre los widgets compatibles, se incluyen los siguientes:

  • TextParagraph
  • DecoratedText
  • Image
  • ButtonList
  • Divider
annotations[]

object (Annotation)

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

thread

object (Thread)

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

space

object (Space)

El espacio al que pertenece el mensaje. Cuando se accede con la autenticación de usuarios, solo se propaga el nombre del espacio.

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 móviles).

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

Cuerpo del mensaje de texto sin formato con todas las menciones de la app de Chat eliminadas

slashCommand

object (SlashCommand)

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

attachment[]

object (Attachment)

El usuario subió un archivo adjunto.

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 es visible en la conversación de nivel superior del espacio como el primer mensaje de una conversación o un mensaje sin respuestas en forma de conversación.

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

clientAssignedMessageId

string

Un nombre personalizado para un mensaje de Chat asignado en el 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 ejemplos de uso, consulta Asigna un nombre a un mensaje creado.

emojiReactionSummaries[]

object (EmojiReactionSummary)

Solo salida. Es la lista de resúmenes de reacciones con emojis en el mensaje.

deletionMetadata

object (DeletionMetadata)

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

ID de tarjeta con

Widgets para especificar apps.

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

string

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

card

object (Card)

Protocolo de tarjetas que permite que las apps de Chat especifiquen elementos de la IU y widgets editables

Anotación

Anotaciones asociadas con el cuerpo del mensaje de texto sin formato

Ejemplo de cuerpo de 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/107946847022116401880",
      "displayName":"FooBot",
      "avatarUrl":"https://goo.gl/aeDtrS",
      "type":"BOT"
    },
    "type":"MENTION"
   }
}]
Representación JSON
{
  "type": enum (AnnotationType),
  "startIndex": integer,
  "length": 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.

startIndex

integer

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

length

integer

Longitud de la substring 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 a un usuario.
SLASH_COMMAND Se invoca un comando de barra.

Mención de metadatos de usuario

Metadatos de anotaciones de las menciones de usuarios (@).

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

object (User)

El usuario lo 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 Mencione al usuario en el espacio.

Metadatos de comandos de barra

Metadatos de anotaciones 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 diálogo.

Tipo

Enumeradores
TYPE_UNSPECIFIED Valor predeterminado para la enumeración. NO USAR.
ADD Agrega 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 contenido a una conversación, crea un mensaje y especifica un threadKey o thread.name. Por ejemplo, consulta Cómo iniciar o responder una conversación de mensajes.

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

Acción de respuesta

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 la autentiquen o configuren. (Solo para tipos de respuesta REQUEST_CONFIG).

dialogAction

object (DialogAction)

Solo entrada. Una respuesta a un evento relacionado con un diálogo. Debe ir acompañado 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 un evento CARD_CLICKED en el que el tipo de remitente del mensaje sea BOT.
UPDATE_USER_MESSAGE_CARDS Actualizar las tarjetas del mensaje de un usuario Esto solo se permite como respuesta a un evento MESSAGE con una URL coincidente o a un evento CARD_CLICKED en el que el tipo de remitente del mensaje es HUMAN. Se ignorará el texto.
REQUEST_CONFIG Pídele 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 solicitud.

Representación JSON
{
  "actionStatus": {
    object (ActionStatus)
  },
  "dialog": {
    object (Dialog)
  }
}
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.

dialog

object (Dialog)

Solo entrada. Dialog para la solicitud.

Dialog

Envuelve 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 renderiza en una ventana 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 para enviar a los usuarios sobre el estado de su solicitud. Si no la estableces, se enviará un mensaje genérico basado en la 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 reintentar en un nivel superior. Por ejemplo, cuando falla una prueba y un conjunto especificados por el cliente, esto indica que el cliente debe reiniciar una secuencia de lectura, modificación y 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 intentar, 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 las 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 de concordancia

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

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

string

Solo salida. La URL que coincidió.

Resumen de reacción con emoji

Es 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 con el emoji asociado.

DeletionMetadata

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 eliminó el mensaje.

Tipo de eliminació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 al que pertenece el emisor, incluidos los mensajes de los miembros y espacios bloqueados.

update

Actualiza un mensaje.