REST Resource: spaces.messages

Recurso: mensagem

Uma mensagem em um espaço do Google Chat.

Representação 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

Nome do recurso no formato spaces/*/messages/*.

Exemplo: spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB

sender

object (User)

Apenas saída. O usuário que criou a mensagem. Se o app do Chat for autenticado como um usuário, a saída preencherá o name e o type do usuário.

createTime

string (Timestamp format)

O horário em que a mensagem foi criada nos espaços criados no Chat. Este campo é apenas para a saída, exceto quando usado em espaços importados.

Para espaços importados, defina esse campo como o carimbo de data/hora histórico em que a mensagem foi criada na fonte para preservar a hora de criação original.

lastUpdateTime

string (Timestamp format)

Apenas saída. A hora em que a mensagem foi editada pela última vez por um usuário. Se a mensagem nunca tiver sido editada, este campo estará vazio.

deleteTime

string (Timestamp format)

Apenas saída. A hora em que a mensagem foi excluída no Google Chat. Se a mensagem nunca for excluída, esse campo vai ficar vazio.

text

string

Corpo da mensagem em texto simples. O primeiro link para uma imagem, vídeo ou página da Web gera um ícone de visualização. Você também pode @mencionar um usuário do Google Chat ou todas as pessoas no espaço.

Para saber mais sobre como criar mensagens de texto, consulte Enviar uma mensagem de texto.

formattedText

string

Apenas saída. Contém a mensagem text com marcações adicionadas para comunicar a formatação. Esse campo pode não capturar toda a formatação visível na IU, mas inclui o seguinte:

  • Sintaxe de marcação para blocos de negrito, itálico, tachado, fontes monoespaçadas e monoespaçadas.
  • Menções de usuários usando o formato <users/{user}>.
  • Hiperlinks personalizados usando o formato <{url}|{rendered_text}>, em que a primeira string é o URL e a segunda é o texto renderizado. Por exemplo, <http://example.com|custom text>.
  • Emoji personalizado no formato :{emoji_name}:, por exemplo, :smile:. Isso não se aplica a emojis Unicode, como U+1F600 para emojis de rosto sorridente.

Saiba mais em Visualizar a formatação do texto enviada em uma mensagem.

cards[]
(deprecated)

object (Card)

Obsoleto: use cardsV2.

Cards avançados, formatados e interativos que você pode usar para mostrar elementos da IU, como textos formatados, botões e imagens clicáveis. Os cards geralmente são exibidos abaixo do corpo de texto simples da mensagem. cards e cardsV2 podem ter um tamanho máximo de 32 KB.

cardsV2[]

object (CardWithId)

Uma matriz de cards.

Somente apps de chat podem criar cards. Quando o app do Chat é autenticado como usuário, as mensagens não podem conter cards.

Para saber mais sobre cards e como criá-los, consulte Criar IUs dinâmicas, interativas e consistentes com cards.

annotations[]

object (Annotation)

Apenas saída. Anotações associadas ao text nesta mensagem.

thread

object (Thread)

A conversa a que a mensagem pertence. Veja exemplos de uso em Iniciar ou responder a uma conversa.

space

object (Space)

Se o app do Chat for autenticado como um usuário, a saída preencherá o espaço name.

fallbackText

string

Uma descrição em texto simples dos cards da mensagem, usada quando os cards reais não podem ser exibidos. Por exemplo, notificações em dispositivos móveis.

actionResponse

object (ActionResponse)

Apenas entrada. Parâmetros que um app do Chat pode usar para configurar como a resposta é postada.

argumentText

string

Apenas saída. Corpo da mensagem em texto simples com todas as menções ao app do Chat removidas.

slashCommand

object (SlashCommand)

Apenas saída. Informações do comando de barra, se aplicável

attachment[]

object (Attachment)

Anexo enviado pelo usuário.

matchedUrl

object (MatchedUrl)

Apenas saída. Um URL no spaces.messages.text que corresponde a um padrão de visualização de link. Para mais informações, consulte Links de visualização.

threadReply

boolean

Apenas saída. Quando true, a mensagem é uma resposta em uma conversa. Quando false, a mensagem aparece na conversa de nível superior do espaço como a primeira mensagem de uma conversa ou como uma mensagem sem respostas agrupadas.

Se o espaço não oferecer suporte para a resposta em conversas, este campo será sempre false.

clientAssignedMessageId

string

Um nome personalizado para uma mensagem do Chat atribuída na criação. Precisa começar com client- e ter apenas letras minúsculas, números e hifens com até 63 caracteres. Especifique este campo para receber, atualizar ou excluir a mensagem com o valor especificado. A atribuição de um nome personalizado permite que um app do Chat recupere a mensagem sem salvar o name do corpo da resposta retornado ao criar a mensagem. A atribuição de um nome personalizado não substitui o campo name gerado, o nome do recurso da mensagem. Em vez disso, ele define o nome personalizado como o campo clientAssignedMessageId, que pode ser referenciado ao processar operações posteriores, como atualizar ou excluir a mensagem. Para exemplo de uso, consulte Nomear uma mensagem criada.

emojiReactionSummaries[]

object (EmojiReactionSummary)

Apenas saída. Lista de resumos de reações com emojis na mensagem.

deletionMetadata

object (DeletionMetadata)

Apenas saída. Informações sobre uma mensagem excluída. Uma mensagem é excluída quando deleteTime é definido.

quotedMessageMetadata

object (QuotedMessageMetadata)

Apenas saída. Informações sobre uma mensagem citada por um usuário do Google Chat em um espaço. Os usuários do Google Chat podem citar uma mensagem para respondê-la.

attachedGifs[]

object (AttachedGif)

Apenas saída. imagens GIF anexadas à mensagem.

CardWithId

Um card em uma mensagem do Google Chat.

Somente apps de chat podem criar cards. Se o app do Chat autenticar como um usuário, a mensagem não poderá conter cards.

Representação JSON
{
  "cardId": string,
  "card": {
    object (Card)
  }
}
Campos
cardId

string

Obrigatório se a mensagem tiver vários cards. Identificador exclusivo de um cartão em uma mensagem.

card

object (Card)

Um cartão. O tamanho máximo é 32 KB.

Nota

Apenas saída. Anotações associadas ao corpo de texto simples da mensagem. Para adicionar uma formatação básica a uma mensagem de texto, consulte Formatar mensagens de texto.

Exemplo de corpo de mensagem de texto simples:

Hello @FooBot how are you!"

Os metadados de anotações correspondentes:

"annotations":[{
  "type":"USER_MENTION",
  "startIndex":6,
  "length":7,
  "userMention": {
    "user": {
      "name":"users/{user}",
      "displayName":"FooBot",
      "avatarUrl":"https://goo.gl/aeDtrS",
      "type":"BOT"
    },
    "type":"MENTION"
   }
}]
Representação 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)

O tipo dessa anotação.

length

integer

Tamanho da substring no corpo da mensagem de texto simples a que esta anotação corresponde.

startIndex

integer

Índice inicial (baseado em 0, inclusivo) no corpo da mensagem de texto simples a que esta anotação corresponde.

Campo de união metadata. Outros metadados sobre a anotação. metadata pode ser apenas de um dos tipos a seguir:
userMention

object (UserMentionMetadata)

Os metadados da menção do usuário.

slashCommand

object (SlashCommandMetadata)

Os metadados para um comando de barra.

AnnotationType

Tipo da anotação.

Enums
ANNOTATION_TYPE_UNSPECIFIED Valor padrão do tipo enumerado. Não use.
USER_MENTION Um usuário é mencionado.
SLASH_COMMAND Um comando de barra é invocado.

UserMentionMetadata

Metadados de anotação para menções de usuários (@).

Representação JSON
{
  "user": {
    object (User)
  },
  "type": enum (Type)
}
Campos
user

object (User)

O usuário mencionou.

type

enum (Type)

O tipo de menção do usuário.

Tipo

Enums
TYPE_UNSPECIFIED Valor padrão do tipo enumerado. Não use.
ADD Adicionar usuário ao espaço.
MENTION Mencione o usuário no espaço.

SlashCommandMetadata

Metadados de anotação para comandos de barra (/).

Representação JSON
{
  "bot": {
    object (User)
  },
  "type": enum (Type),
  "commandName": string,
  "commandId": string,
  "triggersDialog": boolean
}
Campos
bot

object (User)

O app do Chat cujo comando foi invocado.

type

enum (Type)

O tipo de comando de barra.

commandName

string

O nome do comando de barra invocado.

commandId

string (int64 format)

O ID do comando de barra invocado.

triggersDialog

boolean

Indica se o comando de barra é para uma caixa de diálogo.

Tipo

Enums
TYPE_UNSPECIFIED Valor padrão do tipo enumerado. Não use.
ADD Adicionar o app do Chat ao espaço.
INVOKE Invoque o comando de barra no espaço.

Conversa

Uma conversa em um espaço do Google Chat. Veja exemplos de uso em Iniciar ou responder a uma conversa.

Se você especificar uma conversa ao criar uma mensagem, poderá definir o campo messageReplyOption para determinar o que acontece se nenhuma conversa correspondente for encontrada.

Representação JSON
{
  "name": string,
  "threadKey": string
}
Campos
name

string

Apenas saída. Nome do recurso da linha de execução.

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

threadKey

string

Opcional. Entrada para criar ou atualizar uma linha de execução. Caso contrário, apenas saída. ID da thread. Suporta até 4.000 caracteres.

Esse ID é exclusivo do app do Chat que o define. Por exemplo, se vários apps de chat criarem uma mensagem usando a mesma chave de conversa, as mensagens serão postadas em conversas diferentes. Para responder em uma conversa criada por uma pessoa ou outro app do Chat, especifique o campo name da conversa.

ActionResponse

Parâmetros que um app do Chat pode usar para configurar como a resposta é postada.

Representação JSON
{
  "type": enum (ResponseType),
  "url": string,
  "dialogAction": {
    object (DialogAction)
  },
  "updatedWidget": {
    object (UpdatedWidget)
  }
}
Campos
type

enum (ResponseType)

Apenas entrada. O tipo de resposta do app do Chat.

url

string

Apenas entrada. URL para os usuários autenticar ou configurar. (apenas para tipos de resposta REQUEST_CONFIG).

dialogAction

object (DialogAction)

Apenas entrada. Uma resposta a um evento de interação relacionado a uma caixa de diálogo. Precisa estar acompanhado por ResponseType.Dialog.

updatedWidget

object (UpdatedWidget)

Apenas entrada. A resposta do widget atualizado.

ResponseType

O tipo de resposta do app do Chat.

Enums
TYPE_UNSPECIFIED Tipo padrão que é processado como NEW_MESSAGE.
NEW_MESSAGE Postar como uma nova mensagem no tópico.
UPDATE_MESSAGE Atualize a mensagem do app do Chat. Isso só é permitido em um evento CARD_CLICKED em que o tipo de remetente da mensagem é BOT.
UPDATE_USER_MESSAGE_CARDS Atualize os cards na mensagem de um usuário. Isso só é permitido como resposta a um evento MESSAGE com um URL correspondente ou um evento CARD_CLICKED em que o tipo de remetente da mensagem é HUMAN. O texto é ignorado.
REQUEST_CONFIG Solicite a autenticação ou configuração adicional do usuário de maneira particular.
DIALOG Apresenta uma caixa de diálogo.
UPDATE_WIDGET Consulta de opções de preenchimento automático de texto do widget.

DialogAction

Contém uma caixa de diálogo e código de status da solicitação.

Representação 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)

Apenas entrada. Status de uma solicitação para invocar ou enviar uma caixa de diálogo. Exibe um status e uma mensagem para os usuários, se necessário. Por exemplo, em caso de erro ou sucesso.

Campo de união action.

action pode ser apenas de um dos tipos a seguir:

dialog

object (Dialog)

Apenas entrada. Dialog para a solicitação.

Dialog

Wrapper ao redor do corpo do cartão da caixa de diálogo.

Representação JSON
{
  "body": {
    object (Card)
  }
}
Campos
body

object (Card)

Apenas entrada. Corpo da caixa de diálogo, que é renderizado em um modal. Os apps do Google Chat não oferecem suporte às seguintes entidades de cartão: DateTimePicker, OnChangeAction.

ActionStatus

Representa o status de uma solicitação para invocar ou enviar uma caixa de diálogo.

Representação JSON
{
  "statusCode": enum (Code),
  "userFacingMessage": string
}
Campos
statusCode

enum (Code)

O código de status.

userFacingMessage

string

A mensagem a ser enviada aos usuários sobre o status da solicitação. Se ela não for definida, uma mensagem genérica baseada no statusCode será enviada.

Código

Códigos de erros canônicos para APIs gRPC.

Às vezes, vários códigos de erros podem ser aplicados. Os serviços retornam o código do erro mais específico aplicável. Por exemplo, dê preferência a OUT_OF_RANGE em vez de FAILED_PRECONDITION, se ambos os códigos se aplicarem. Da mesma maneira, dê preferência a NOT_FOUND ou ALREADY_EXISTS em vez de FAILED_PRECONDITION.

Enums
OK

Não é um erro. Retornado quando bem-sucedido.

Mapeamento HTTP: 200 OK

CANCELLED

A operação foi cancelada, geralmente pelo chamador

Mapeamento HTTP: 499 Solicitação fechada pelo cliente

UNKNOWN

Erro desconhecido. Por exemplo, esse erro pode ser retornado quando um valor Status recebido de outro espaço de endereço pertence a um espaço de erro desconhecido nesse espaço de endereço. Além disso, os erros gerados por APIs que não retornam informações de erro suficientes podem ser convertidos neste erro.

Mapeamento HTTP: 500 Erro interno do servidor

INVALID_ARGUMENT

O cliente especificou um argumento inválido. Observe que isso é diferente de FAILED_PRECONDITION. INVALID_ARGUMENT indica argumentos problemáticos, independentemente do estado do sistema. Por exemplo, um nome de arquivo incorreto.

Mapeamento HTTP: 400 Solicitação inválida

DEADLINE_EXCEEDED

O prazo expirou antes do término da operação. Para operações que alteram o estado do sistema, este erro pode ser retornado mesmo que a operação tenha sido concluída com sucesso. Por exemplo, uma resposta bem-sucedida de um servidor pode ter atrasado tempo suficiente para que o prazo expirasse.

Mapeamento HTTP: 504 Tempo limite do gateway

NOT_FOUND

Alguma entidade solicitada não foi encontrada. Por exemplo, arquivo ou diretório.

Observação para desenvolvedores de servidor: se uma solicitação for negada para uma classe inteira de usuários, como a implementação gradual de recursos ou a lista de permissões não documentada de permissões, NOT_FOUND poderá ser usado. Se uma solicitação for negada para alguns usuários de uma classe, como o controle de acesso baseado em usuário, PERMISSION_DENIED precisará ser usado.

Mapeamento HTTP: 404 Não encontrado

ALREADY_EXISTS

A entidade que um cliente tentou criar já existe. Por exemplo, arquivo ou diretório.

Mapeamento HTTP: 409 Conflito

PERMISSION_DENIED

O autor da chamada não tem permissão para executar a operação especificada. PERMISSION_DENIED não pode ser usado para rejeições causadas pelo esgotamento de algum recurso. Em vez dele, use RESOURCE_EXHAUSTED para esses erros. PERMISSION_DENIED não poderá ser usado se o autor da chamada não for identificado. Em vez dele, use UNAUTHENTICATED para esses erros. Esse código do erro não indica que a solicitação seja válida nem que a entidade solicitada exista ou satisfaça outras condições prévias.

Mapeamento HTTP: 403 Proibido

UNAUTHENTICATED

A solicitação não tem credenciais válidas de autenticação para a operação.

Mapeamento HTTP: 401 Não autorizado

RESOURCE_EXHAUSTED

Houve o esgotamento de algum recurso, como uma cota por usuário. Também é possível que todo sistema de arquivos esteja sem espaço.

Mapeamento HTTP: 429 Há muitas solicitações

FAILED_PRECONDITION

A operação foi rejeitada porque o estado do sistema não é o necessário para a execução dela. Por exemplo, o diretório a ser excluído não está vazio, uma operação "rmdir" foi aplicada a um elemento que não é um diretório etc.

Os implementadores de serviços podem usar as diretrizes a seguir para decidir entre FAILED_PRECONDITION, ABORTED e UNAVAILABLE: (a) usar UNAVAILABLE se o cliente puder repetir apenas a chamada com falha. (b) Use ABORTED se o cliente precisar tentar novamente em um nível superior. Por exemplo, quando um teste e conjunto especificado pelo cliente falha, indicando que o cliente deve reiniciar uma sequência de leitura-modificação-gravação. (c) Use FAILED_PRECONDITION se o cliente não tentar novamente até que o estado do sistema seja explicitamente corrigido. Por exemplo, se um "rmdir" falhar porque o diretório não está vazio, será preciso retornar FAILED_PRECONDITION, porque o cliente não precisa tentar novamente, a menos que os arquivos sejam excluídos do diretório.

Mapeamento HTTP: 400 Solicitação inválida

ABORTED

A operação foi cancelada. Isso ocorre normalmente devido a um problema de simultaneidade, como falha na verificação do sequenciador ou cancelamento da transação.

Consulte as diretrizes acima para decidir entre FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

Mapeamento HTTP: 409 Conflito

OUT_OF_RANGE

Houve uma tentativa da operação depois do intervalo válido. Por exemplo, busca ou leitura após o fim do arquivo.

Diferentemente de INVALID_ARGUMENT, este erro indica um problema que poderá ser corrigido se o estado do sistema mudar. Por exemplo, um sistema de arquivos de 32 bits gerará INVALID_ARGUMENT se for solicitado a ler em um deslocamento fora do intervalo [0,2^32-1], mas gerará OUT_OF_RANGE se for solicitado a ler um deslocamento que ultrapasse o tamanho do arquivo atual.

Há uma boa sobreposição entre FAILED_PRECONDITION e OUT_OF_RANGE. Recomendamos usar OUT_OF_RANGE (o erro mais específico) quando aplicável para que os autores da chamada que estejam iterando em um espaço possam procurar facilmente um erro OUT_OF_RANGE e detectar quando terminarem.

Mapeamento HTTP: 400 Solicitação inválida

UNIMPLEMENTED

A operação não foi implementada ou não é compatível nem está ativada neste serviço.

Mapeamento HTTP: 501 Não implementado

INTERNAL

Erros internos. Significa que algumas invariantes esperadas pelo sistema subjacente foram corrompidas. Este código do erro é reservado para erros graves.

Mapeamento HTTP: 500 Erro interno do servidor

UNAVAILABLE

Atualmente, o serviço não está disponível. Muito provavelmente, trata-se de uma condição temporária, que pode ser corrigida ao tentar novamente com uma retirada. Nem sempre é seguro repetir operações não idempotentes.

Consulte as diretrizes acima para decidir entre FAILED_PRECONDITION, ABORTED e UNAVAILABLE.

Mapeamento HTTP: 503 Serviço indisponível

DATA_LOSS

Perda ou corrupção irrecuperável de dados.

Mapeamento HTTP: 500 Erro interno do servidor

UpdatedWidget

A resposta do widget atualizado. Usado para fornecer opções de preenchimento automático para um widget.

Representação JSON
{
  "widget": string,

  // Union field updated_widget can be only one of the following:
  "suggestions": {
    object (SelectionItems)
  }
  // End of list of possible types for union field updated_widget.
}
Campos
widget

string

O ID do widget atualizado. O ID precisa corresponder ao do widget que acionou a solicitação de atualização.

Campo de união updated_widget.

updated_widget pode ser apenas de um dos tipos a seguir:

suggestions

object (SelectionItems)

Lista de resultados de preenchimento automático de widgets

SelectionItems

Lista de resultados de preenchimento automático de widgets.

Representação JSON
{
  "items": [
    {
      object (SelectionItem)
    }
  ]
}
Campos
items[]

object (SelectionItem)

Uma matriz dos objetos SelectionItem.

SlashCommand

Um comando de barra no Google Chat.

Representação JSON
{
  "commandId": string
}
Campos
commandId

string (int64 format)

O ID do comando de barra invocado.

MatchedUrl

Um URL correspondente em uma mensagem do Chat. Os apps de chat podem visualizar os URLs correspondentes. Para mais informações, consulte Visualizar links.

Representação JSON
{
  "url": string
}
Campos
url

string

Apenas saída. O URL correspondente.

EmojiReactionSummary

O número de pessoas que reagiram a uma mensagem com um emoji específico.

Representação JSON
{
  "emoji": {
    object (Emoji)
  },
  "reactionCount": integer
}
Campos
emoji

object (Emoji)

Emoji associado às reações.

reactionCount

integer

É o número total de reações que usam o emoji associado.

DeletionMetadata

Informações sobre uma mensagem excluída. Uma mensagem é excluída quando deleteTime é definido.

Representação JSON
{
  "deletionType": enum (DeletionType)
}
Campos
deletionType

enum (DeletionType)

Indica quem excluiu a mensagem.

DeletionType

Quem excluiu a mensagem e como ela foi excluída.

Enums
DELETION_TYPE_UNSPECIFIED Esse valor não é usado.
CREATOR O usuário excluiu a própria mensagem.
SPACE_OWNER O proprietário do espaço excluiu a mensagem.
ADMIN Um administrador do Google Workspace excluiu a mensagem.
APP_MESSAGE_EXPIRY Um app do Chat excluiu a própria mensagem quando ela expirou.
CREATOR_VIA_APP Um app do Chat excluiu a mensagem em nome do usuário.
SPACE_OWNER_VIA_APP Um app do Chat excluiu a mensagem em nome do proprietário do espaço.

QuotedMessageMetadata

Informações sobre uma mensagem citada.

Representação JSON
{
  "name": string,
  "lastUpdateTime": string
}
Campos
name

string

Apenas saída. Nome do recurso da mensagem citada.

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

lastUpdateTime

string (Timestamp format)

Apenas saída. O carimbo de data/hora em que a mensagem citada foi criada ou foi atualizada pela última vez.

AttachedGif

Uma imagem GIF que é especificada por um URL.

Representação JSON
{
  "uri": string
}
Campos
uri

string

Apenas saída. O URL que hospeda a imagem GIF.

Métodos

create

Cria uma mensagem em um espaço do Google Chat.

delete

Exclui uma mensagem.

get

Retorna detalhes sobre uma mensagem.

list

Lista as mensagens em um espaço de que o autor da chamada participa, inclusive as mensagens de participantes e espaços bloqueados.

patch

Atualiza uma mensagem.

update

Atualiza uma mensagem.