Em apps para dispositivos móveis, os links diretos permitem que os usuários acessem diretamente o conteúdo em um app. Sem o link direto, se você compartilhar uma camiseta que encontrou em um app de loja de varejo com um amigo, um link o direcionará para o navegador ou para a Play Store, onde será necessário instalar ou abrir o app e pesquisar o conteúdo. Nenhuma das situações é uma ótima experiência do usuário. Com o link direto, o link leva seu amigo à camisa exata que você encontrou no app de varejo.
Neste documento, você vai aprender a usar links diretos para criar experiências avançadas e envolventes para os usuários do RBM.
Encaminhar um usuário do RBM para um app
Um link direto é apenas um link para um app. O agente de RBM pode abrir um app instalado no smartphone de alguém usando uma OpenUrlAction, em que o URL é um link direto configurado para o app que você quer invocar. Saiba mais em Criar links diretos para conteúdo do app.
Veja o exemplo a seguir: Para abrir o podcast do Google Cloud no app Google Podcasts, é possível criar um OpenUrlAction com o URI:
https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm1Qb2RjYXN0
Muitos produtos do Google são configurados para oferecer suporte a links diretos que também funcionam como URLs da Web, incluindo o YouTube e o Google Maps.
Para acionar qualquer um desses apps por um agente, precisamos especificar esse valor como o URL em uma OpenUrlAction. No JSON de exemplo abaixo, um card rico do RBM é especificado com três ações de URL abertas, cada uma com um link direto para um app diferente.
{
"contentMessage":{
"richCard":{
"standaloneCard":{
"cardOrientation":"VERTICAL",
"cardContent":{
"title":"Did you know that you can open apps from an RBM agent?",
"description":"",
"suggestions":[
{
"action":{
"text":"Google Cloud Podcast",
"postbackData":"podcast_tap",
"openUrlAction":{
"url":"https://www.google.com/podcasts?feed=aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL1JvYkNlc3Rlcm5pbm8&nord=0"
}
}
},
{
"action":{
"text":"YouTube Video",
"postbackData":"youtube_tap",
"openUrlAction":{
"url":"https://www.youtube.com/embed/xSE9Qk9wkig"
}
}
},
{
"action":{
"text":"Google Maps",
"postbackData":"maps_tap",
"openUrlAction":{
"url":"https://goo.gl/maps/ToMSdr4PYX62"
}
}
}
]
}
}
}
}
}
Quando esse payload JSON é renderizado no cliente RCS de um usuário, o ícone da ação sugerida corresponde ao app com link direto. Ao tocar em qualquer uma das ações sugeridas, o app correspondente é iniciado diretamente no conteúdo codificado no URL.
Por que você quer isso?
Há vários motivos para criar um link direto para um app.
Autenticação
Se o agente lidar com informações potencialmente sensíveis, uma maneira de protegê-lo é criar um link direto para o app para ajudar a autenticar o usuário usando impressão digital, login ou outros meios. Depois que o usuário fizer a autenticação, você poderá acompanhar a autenticação no servidor e trazer o usuário de volta ao agente acionando uma nova mensagem RBM. Se você enviar mensagens de acompanhamento potencialmente sensíveis, verifique do lado do servidor se o usuário está autenticado. Se não forem, você pode enviá-los de volta ao app para renovar o token de autenticação.
Suporte a casos de uso complexos
Os agentes RBM são ótimos para interações de conversa, mas os apps podem atender melhor a alguns casos de uso. Por exemplo, se você tem uma empresa de móveis e criou uma experiência de realidade aumentada para que os usuários testem móveis nas casas (confira a imagem a seguir), seu caso de uso só pode ser compatível com um app.
Nessas situações, faz sentido direcionar os usuários do RBM para o app para realizar algumas funcionalidades. Seu app pode sempre trazer o usuário de volta à conversa do RBM acionando uma nova mensagem do agente.
Facilitar pagamento
É possível oferecer suporte a pagamentos com um app de terceiros com links diretos.
Por exemplo, suponha que você queira oferecer suporte a transferências de dinheiro por meio da empresa de pagamentos fictícia AcmePay. Ao pesquisar on-line, você descobriu que o AcmePay oferece suporte a links diretos usando a própria estrutura de URI exclusiva, que permite transmitir valores para destinatários, o valor e uma observação usando parâmetros de string de consulta.
Com esse conhecimento, seu agente precisa criar uma OpenUrlAction com o URI de AcmePay parametrizado especificado para a parte do URL da ação sugerida.
acmepay://paycharge?recipients=Jane+Smith&amount=10¬e=Money+For+You!
Quando o destinatário da mensagem do RBM toca na ação sugerida, o app AcmePay é iniciado diretamente na tela de transação com os valores transmitidos já preenchidos.
O que acontece se o app não estiver instalado?
Se um app não for instalado no dispositivo de um usuário, o comportamento do link direto vai depender da estrutura do URI transmitido para a OpenUrlAction. Se o URI puder ser reconhecido por pelo menos um app no dispositivo (por exemplo, o Chrome reconhece URLs que começam com "http://"), a ação sugerida será mostrada normalmente nesse app. Quando o usuário tocar na ação, o URI será aberto no app que reconhecer a estrutura do URI.
Se você é o desenvolvedor do app, é vantajoso criar links diretos com URIs que começam com "http://" e apontam para um domínio que você possui, porque o Chrome pode levar o usuário a uma página da Web como uma ação alternativa. Na página da Web, você pode direcionar o usuário para fazer o download do app ou direcioná-lo conforme for adequado para seu caso de uso.
Na situação em que o URI usa uma estrutura personalizada que não é reconhecida por nenhum app no dispositivo, a ação sugerida não será renderizada na sua mensagem RBM.
Para garantir que as ações sugeridas sejam sempre exibidas, use um URL seu e peça que a página da Web tente redirecionar o navegador para um URI personalizado que inicie o app. Se o app existir no dispositivo, ele será iniciado conforme o esperado. Caso contrário, o usuário vai permanecer na página da Web, onde você pode direcioná-lo conforme necessário para seu caso de uso.
Confira a seguir um exemplo de como fazer isso com JavaScript. O script tenta redirecionar o usuário para o app AcmePay, mas, se ele não estiver instalado, o script redirecionará o usuário para a Google Play Store para fazer o download do app.
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1.0, maximum-scale=1.0" />
<title>Acme Pay</title>
<script type="text/javascript">
window.onload = function() {
// Launch Acme Pay app for existing users
window.location = 'acmepay://paycharge?recipients=Jane+Smith&amount=10¬e=Money+For+You!';
// Redirect to Acme Pay app download for new users
setTimeout("window.location = 'https://play.google.com/store/apps/details?id=com.acmepay.android';", 1000);
}
</script>
</head>
<body>
<h1>Redirecting…</h1>
</body>
</html>
Conclusão e resumo
Você pode usar a ação sugerida OpenUrlAction para criar links diretos para apps que você possui ou que você quer acionar para ajudar a engajar os usuários. Com os links diretos, você pode oferecer uma experiência enriquecida e envolvente para seus usuários ou uma segurança aprimorada para compartilhar conteúdo sensível.
Boa sorte e divirta-se programando!