Para evitar a troca de contexto quando os usuários compartilham um link no Google Chat, o app Chat pode visualizar o link anexando um card à mensagem, que mostra mais informações e permite que as pessoas realizem ações diretamente no Google Chat.
Por exemplo, imagine um espaço do Google Chat que inclua todos os agentes de atendimento ao cliente de uma empresa e um app de chat chamado Case-y. Os agentes costumam compartilhar links para casos de atendimento ao cliente no espaço do Chat. Sempre que fizerem isso, os colegas precisarão abrir o link do caso para ver detalhes, como o responsável, o status e o assunto. Da mesma forma, se alguém quiser assumir a propriedade de um caso ou alterar o status, precisará abrir o link.
A visualização de links permite que o app Chat residente do espaço, Case-y, anexe um card com o responsável, o status e o assunto sempre que alguém compartilhar um link do caso. Com os botões no card, os agentes podem assumir a propriedade do caso e mudar o status dele diretamente no stream do chat.
Como funciona a visualização de links
Quando alguém adiciona um link à mensagem, um ícone é exibido informando que um app de chat pode visualizar o link.
Após o envio, o link é enviado para o app Chat, que gera e anexa o card à mensagem do usuário.
O card fornece informações adicionais sobre o link, incluindo elementos interativos, como botões. O app Chat pode atualizar o card anexado em resposta a interações do usuário, como cliques em botões.
Se alguém não quiser que o app Chat visualize o link anexando um card à mensagem, é possível impedir a visualização clicando em
no ícone de visualização. Os usuários podem remover o cartão anexado a qualquer momento clicando em Remover visualização.Configurar visualizações de links
Registre links específicos, como example.com
, support.example.com
e support.example.com/cases/
, como padrões de URL na página de configuração do app Chat no Console do Google Cloud para que o app Chat possa visualizá-los.
- Abra o Console do Google Cloud.
- Ao lado de "Google Cloud", clique na seta para baixo e abra o projeto do app Chat.
- No campo de pesquisa, digite
Google Chat API
e clique em API Google Chat. - Clique em Gerenciar > Configuração.
- Em "Visualizações de link", adicione ou edite um padrão de URL.
- Para configurar visualizações de links de um novo padrão de URL, clique em Adicionar padrão de URL.
- Para editar a configuração de um padrão de URL existente, clique na seta para baixo .
No campo Host standard, digite o domínio do padrão de URL. O app Chat visualizará os links deste domínio.
Para que o app Chat visualize links de um subdomínio específico, como
subdomain.example.com
, inclua o subdomínio.Para que o app Chat visualize links de todo o domínio, especifique um caractere curinga com um asterisco (*) como subdomínio. Por exemplo,
*.example.com
corresponde asubdomain.example.com
eany.number.of.subdomains.example.com
.No campo Prefixo do caminho, digite um caminho para anexar ao domínio do padrão de host.
Para corresponder a todos os URLs no domínio do padrão do host, deixe Prefixo do caminho vazio.
Por exemplo, se o padrão do host for
support.example.com
, digitecases/
para corresponder aos URLs em casos hospedados emsupport.example.com/cases/
.Clique em Concluído.
Clique em Salvar.
Agora, sempre que alguém incluir um link que corresponda a um padrão de URL de visualização de link em uma mensagem em um espaço do Chat que inclua seu app de chat, o app exibirá o link.
Visualizar um link
Depois que você configura a visualização de um determinado link, o app Chat pode reconhecer e visualizar o link anexando mais informações.
Dentro dos espaços do Chat que incluem o app Chat, quando a mensagem de alguém contiver um link que corresponde a um padrão de URL de visualização, o link será enviado ao seu app como o atributo matchedUrl
no objeto message
:
JSON
message {
. . . // other message attributes redacted
"matchedUrl": {
"url": "https://support.example.com/cases/case123"
},
. . . // other message attributes redacted
}
Ao verificar a presença do atributo matchedUrl
no objeto message
, seu app de chat pode adicionar informações à mensagem com o link visualizado. O app Chat pode responder com uma mensagem de texto simples ou anexar um card.
Responder com uma mensagem de texto
Para respostas simples, o app Chat pode visualizar um link respondendo com uma mensagem de texto simples. Este exemplo anexa uma mensagem que repete o URL do link que corresponde a um padrão de URL de visualização do link.
Node.js
Apps Script
Anexar um cartão
Para anexar um card a um link visualizado, retorne um ActionResponse
do tipo UPDATE_USER_MESSAGE_CARDS
. Este exemplo anexa um cartão simples.
Node.js
Apps Script
Atualizar um cartão
Para atualizar o card anexado a um link visualizado, retorne um ActionResponse
do tipo UPDATE_USER_MESSAGE_CARDS
. Os cards anexados aos links visualizados só são atualizados em resposta a solicitações síncronas dos eventos de chat. As solicitações assíncronas para atualizar cartões anexados a um link visualizado pela API REST do Chat não são compatíveis.
A visualização de links não é compatível com o retorno de um ActionResponse
do tipo UPDATE_MESSAGE
. Como o UPDATE_MESSAGE
atualiza toda a mensagem em vez de apenas o card, ela só funcionará se o app Chat tiver criado a mensagem original. A visualização de links anexa um card a uma mensagem criada pelo usuário para que o app Chat não tenha permissão para atualizá-lo.
Para garantir que uma função atualize os cards criados pelo usuário e pelo app no stream do Chat, defina ActionResponse
dinamicamente, dependendo se o app Chat ou um usuário criou a mensagem.
- Se um usuário criou a mensagem, defina
ActionResponse
comoUPDATE_USER_MESSAGE_CARDS
. - Se um app de chat tiver criado a mensagem, defina
ActionResponse
comoUPDATE_MESSAGE
.
Há duas maneiras de fazer isso: especificando e verificando uma actionMethodName
personalizada como parte da propriedade onclick
do cartão anexado, que identifica a mensagem como criada pelo usuário, ou verificando se ela foi criada por um usuário.
Opção 1: verificar se há actionMethodName
Para usar o actionMethodName
para gerenciar corretamente os eventos de clique nos cards visualizados, defina um actionMethodName
personalizado como parte da propriedade onclick
do card anexado:
JSON
. . . // Preview card details
{
"textButton": {
"text": "ASSIGN TO ME",
"onClick": {
// actionMethodName identifies the button to help determine the
// appropriate ActionResponse.
"action": {
"actionMethodName": "assign",
}
}
}
}
. . . // Preview card details
Com "actionMethodName": "assign"
identificando o botão como parte de uma visualização de link, é possível retornar dinamicamente o ActionResponse
correto verificando se há um actionMethodName
correspondente:
Node.js
Apps Script
Opção 2: verificar o tipo de remetente
Verifique se message.sender.type
é HUMAN
ou BOT
. Se HUMAN
, defina ActionResponse
como UPDATE_USER_MESSAGE_CARDS
. Caso contrário, defina ActionResponse
como UPDATE_MESSAGE
. Veja como fazer isso:
Node.js
Apps Script
Um motivo comum para atualizar um cartão é em resposta a um clique de botão. Lembre-se do botão Atribuir a mim da seção anterior, Anexar um cartão. O exemplo completo a seguir atualiza o card e informa que ele está atribuído a "Você" depois que o usuário clica em Atribuir a mim. O exemplo define ActionResponse
dinamicamente verificando o tipo de remetente.
Exemplo completo: caso, app de chat do atendimento ao cliente
Este é o código completo do Case-y, um app de chat que mostra links para casos compartilhados em um espaço do Chat em que os agentes de atendimento ao cliente colaboram.
Node.js
Apps Script
Limites e considerações
Ao configurar visualizações de links no app Chat, observe estes limites e considerações:
- Cada app Chat aceita visualizações de link de até cinco padrões de URL.
- Os apps de chat exibem um link por mensagem. Se vários links visíveis estiverem presentes em uma única mensagem, apenas o primeiro link poderá ser visualizado.
- Os apps de chat só visualizam links que começam com
https://
. Portanto,https://support.example.com/cases/
visualiza, massupport.example.com/cases/
não. - A menos que a mensagem inclua outras informações enviadas para o app Chat, como um comando de barra, somente o URL do link será enviado para esse app por visualizações de link.
- Os cards anexados aos links visualizados aceitam apenas uma
ActionResponse
do tipoUPDATE_USER_MESSAGE_CARDS
e somente em resposta a solicitações síncronas de eventos de chat. As visualizações de link não aceitamUPDATE_MESSAGE
nem solicitações assíncronas para atualizar cartões anexados a um link visualizado por meio da API REST do Chat. Para saber mais, consulte Atualizar um cartão.
Depurar visualizações de link
Ao implementar as visualizações de link, talvez seja necessário depurar o app Chat lendo os registros do app. Para ler os registros, visite o Explorador de registros no Console do Google Cloud.