https://a.storyblok.com/f/270183/1368x665/536a2cfe5b/rcs-business-messaging.png

O RCS Business Messaging já está disponível na Messages API do Vonage

Publicado em July 2, 2024

Tempo de leitura: 8 minutos

Observação: Esta publicação anuncia o lançamento da versão beta do RCS Business Messaging na Messages API do Vonage. O RCS Messaging está agora disponível para o público em geral (GA) na Messages API do Vonage. Saiba mais sobre isso em nosso anúncio de lançamento.

A Messages API for Vonage agora oferece suporte à mensagem RCS Business (em versão beta). Caso você ainda não esteja familiarizado com a Messages API, trata-se de uma API REST para mensagens omnicanal. Ela oferece uma interface padronizada e fácil de usar para enviar e receber mensagens via SMS, MMS, WhatsApp, Facebook Messenger, Viber e, agora, RCS!

Se você nunca ouviu falar do RCS antes, talvez esteja se perguntando: “O que exatamente é a mensagem RCS?” Vamos descobrir!

O que é o RCS Messaging?

O RCS, ou Rich Communication Services, é um protocolo de comunicação para o envio de mensagens para e entre dispositivos conectados a uma rede de telefonia celular. Além de texto, as mensagens RCS podem incluir fotos, Videos, arquivos e muito mais. 

Você deve estar pensando que isso se parece muito com as mensagens MMS. Bem, de certa forma, mas há algumas diferenças importantes:

  • As mensagens MMS podem ser enviadas pela rede de celular, enquanto as mensagens RCS exigem uma conexão com a internet (seja por meio de uma conexão de dados móveis ou de Wi-Fi). 

  • As mensagens RCS também permitem tamanhos de arquivo maiores para imagens, Videos e arquivos do que as mensagens MMS.

  • As mensagens RCS permitem maior interatividade do que as MMS, com tipos avançados de mensagens para exibir mídia e botões que sugerem respostas para a realização de ações específicas, como discar um número ou abrir um local em um aplicativo de mapas.

Em muitos aspectos, as mensagens RCS são mais semelhantes, em termos de funcionalidade, às mensagens OTT (Over-The-Top) com as quais você talvez esteja familiarizado por meio de aplicativos como WhatsApp, Facebook Messenger, Viber e outros. A vantagem do RCS em relação a esses outros canais é que as mensagens RCS são suportadas nativamente no aplicativo de mensagens integrado ao celular, em vez de os usuários precisarem instalar um aplicativo de terceiros em seus dispositivos.

No entanto, essa vantagem vem acompanhada, atualmente, de uma grande ressalva: a compatibilidade com dispositivos.

Compatibilidade com dispositivos

Atualmente, o serviço de mensagens RCS é compatível apenas com dispositivos Android. Em um comunicado à imprensa recente, no entanto, a Apple afirmou que o RCS será compatível como parte da próxima versão do iOS 18:

Ao enviar mensagens para contatos que não possuem um dispositivo Apple, o aplicativo Mensagens agora oferece suporte ao RCS, permitindo o envio de mídia mais rica e mensagens em grupo mais confiáveis em comparação com o SMS e o MMS.

Os detalhes exatos do suporte da Apple ao RCS ainda não são conhecidos nesta fase, e não está claro se esse suporte incluirá mensagens comerciais via RCS ou se se limitará exclusivamente às mensagens entre usuários.

Tipos de mensagens

Vamos nos aprofundar um pouco mais na implementação do RCS pela Vonage na Messages API, analisando os diversos tipos de mensagens que podem ser enviadas e recebidas.

O canal RCS da Messages API utiliza os servidores RBM (RCS Business Messaging) do Google e oferece suporte aos diversos tipos de mensagens disponíveis por meio do Google RBM. O canal suporta tanto mensagens de saída (mensagens enviadas pela empresa ao cliente) quanto mensagens de entrada (mensagens enviadas pelo cliente à empresa, em resposta a uma mensagem de saída). Dentro dessas duas categorias, existem muitos tipos diferentes de mensagens. Vamos listá-los brevemente aqui antes de passarmos a examinar alguns exemplos específicos de alguns desses tipos.

Para mensagens de saída, alguns dos tipos de mensagem do Google RBM são abstraídos em tipos específicos com os quais você talvez já esteja familiarizado em outros canais da Messages API, como text, image, videoe file. Há também um custom tipo de mensagem que suporta as mensagens RBM mais complexas, como respostas sugeridas, ações sugeridas, cartões avançados e carrosséis.

As mensagens recebidas são captadas por meio de um webhook configurado no seu Painel do Desenvolvedor da Vonage. Para o RCS, existem vários tipos de mensagens recebidas. O tipo recebido pelo webhook depende do conteúdo da mensagem enviada pelo cliente ou da forma como o cliente interage com uma mensagem enviada pela empresa. Quando o cliente envia um texto, algum tipo de mídia ou uma localização, isso resulta em mensagens recebidas do tipo text, image, video, audio, vcard, file, ou location. O cliente que interagir com uma resposta sugerida ou uma mensagem de ação sugerida resultará em mensagens recebidas do tipo reply ou button.

Por fim, assim como em todos os canais da Messages API, as mensagens RCS enviadas recebem atualizações de status por meio de um webhook (também configurado no Painel do Desenvolvedor da Vonage). No caso das mensagens RCS, essas atualizações de status incluem um read indicação de quando o destinatário da mensagem a leu.

Talvez seja mais fácil visualizar alguns desses tipos de mensagem analisando alguns exemplos de código; então, vamos fazer isso agora!

Exemplos de código

Mensagens enviadas

Vamos examinar primeiro algumas mensagens de saída, começando por uma mensagem básica text .

Assim como em todos os canais da Messages API, o envio de uma mensagem RCS requer a realização de uma POST solicitação ao endpoint da Messages API da Vonage com a carga JSON apropriada. Algumas das propriedades do objeto JSON, como channel, message_type, toe from são comuns a todos os canais e tipos de mensagem, enquanto outras são específicas do canal e/ou do tipo de mensagem. Para uma mensagem de texto RCS de saída, o JSON seria estruturado da seguinte forma:

{
  "to": "447900000000",
  "from": "Vonage",
  "channel": "rcs",
  "message_type": "text",
  "text": "Hello world!"
}

Isso seria exibido da seguinte forma no aplicativo de mensagens do destinatário:

Screenshot of an RCS text messageScreenshot of an RCS text message

O JSON para image, video, e file mensagens é semelhante, exceto que elas precisam incluir um objeto com uma url propriedade cujo valor é uma URL acessível publicamente para o arquivo que você deseja enviar. Por exemplo, o JSON para enviar uma foto de um gato pode ser assim:

{
  "to": "447900000000",
  "from": "Vonage",
  "channel": "rcs",
  "message_type": "image",
  "image": {
    "url": "https://example.com/cat.jpg"
  }
}

e fazem com que a seguinte mensagem seja exibida no aplicativo de mensagens do destinatário:

Screenshot of an RCS image messageScreenshot of an RCS image message

Todas as demais mensagens RCS enviadas são compatíveis com o custom tipo de mensagem. Essas mensagens incluem um custom objeto contendo as propriedades relevantes para a mensagem específica. Existem muitos subtipos e variações para abordar neste artigo, mas um exemplo poderia ser uma mensagem com dois botões de resposta sugeridos:

{
  "to": "447900000000",
  "from": "Vonage",
  "channel": "rcs",
  "message_type": "custom",
  "custom": {
    "contentMessage": {
      "text": "What do you think of Vonage APIs?",
      "suggestions": [
        {
          "reply": {
            "text": "They're great!",
            "postbackData": "suggestion_1"
          }
        },
        {
          "reply": {
            "text": "They're awesome!",
            "postbackData": "suggestion_2"
          }
        }
      ]
    }
  }
}

o que exibiria o seguinte:

Outro exemplo poderia ser uma mensagem com uma sugestão de ação para abrir um URL:

{
  "to": "447900000000",
  "from": "Vonage",
  "channel": "rcs",
  "message_type": "custom",
  "custom": {
    "contentMessage": {
      "text": "Check out our latest offers!",
      "suggestions": [
        {
          "action": {
            "text": "Open product page",
            "postbackData": "postback_data_1234",
            "openUrlAction": {
              "url": "http://example.com/"
            }
          }
        }
      ]
    }
  }
}

o que resultaria no seguinte:

Screenshot of an RCS suggested action messageScreenshot of an RCS suggested action message

Embora a estrutura desses dois tipos de mensagem seja diferente, você deve ter percebido que tanto o reply e action contêm uma postbackData propriedade. O valor dessa propriedade se torna relevante no contexto da mensagem de entrada que é acionada quando o destinatário interage com a mensagem de resposta sugerida ou de ação sugerida. A seguir, vamos dar uma olhada nas mensagens de entrada.

Mensagens recebidas

Conforme mencionado anteriormente, as mensagens recebidas são captadas por meio de um webhook. Existem vários tipos diferentes de mensagens recebidas, e não abordaremos todos eles aqui, mas podemos examinar alguns exemplos.

Assim como nas mensagens de saída, alguns campos na carga JSON são comuns a todos os canais e tipos de mensagem. O to, from, channel, e message_type já foram apresentados nos exemplos de mensagens de saída acima. Além desses, as mensagens de entrada contêm alguns outros campos padrão; message_uuid que é um identificador único para a mensagem, e timestamp que indica a data e a hora em que a mensagem recebida foi entregue. Além dessas propriedades padrão, o conteúdo da carga útil do webhook dependerá do tipo de mensagem.

Tipos como text, image, video, audio, vcard, file, e location conterão dados com base na mensagem enviada pelo dispositivo do cliente. Para os tipos que envolvem o envio de algum tipo de mídia ou arquivo, a carga útil incluirá um link para o arquivo nos servidores de mídia da Vonage. Por exemplo, a carga útil do webhook para uma mensagem com imagem pode ser algo como isto:

{
  "to": "Vonage",
  "from": "447900000000",
  "channel": "rcs",
  "message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "timestamp": "2024-02-08T10:12:44Z",
  "context_status": "none",
  "message_type": "image",
  "image": {
    "name": "image.jpg",
    "url": "https://api-eu.nexmo.com/v3/media/6882bbe2-fe14-4e2f-910f-652bbbb058d4"
  }
}

O tráfego de entrada reply e as button são enviadas como resultado da interação dos clientes com as mensagens de respostas sugeridas e de ações sugeridas, respectivamente. Anteriormente neste artigo, mencionamos a postbackData propriedade nesses tipos de mensagens de saída, e é aqui que o valor definido para essa propriedade entra em ação.

Analisando o exemplo de resposta sugerido, se o cliente selecionou o botão com a mensagem They're awesome! a mensagem recebida reply ficaria mais ou menos assim, com o valor para postbackData contido na id propriedade do reply objeto:

{
  "to": "Vonage",
  "from": "447900000000",
  "channel": "rcs",
  "message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "timestamp": "2024-02-08T10:12:44Z",
  "context_status": "none",
  "message_type": "reply",
  "reply": {
    "id": "suggestion_2",
    "title": "They're awesome!"
  }
}

Uma mensagem de entrada button contém, da mesma forma, o valor para postbackData, mas, neste caso, é definido como a payload propriedade do button objeto. Uma button mensagem acionada quando um cliente abre a URL da nossa mensagem de ação sugerida anteriormente ficaria mais ou menos assim:

{
  "to": "Vonage",
  "from": "447900000000",
  "channel": "rcs",
  "message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "timestamp": "2024-02-08T10:12:44Z",
  "context_status": "none",
  "message_type": "button",
  "button": {
    "payload": "postback_data_1234",
    "text": "Open product page"
  }
}

Em ambos os casos, o valor deste postbackData pode ser usado para identificar a ação realizada pelo cliente. Em seguida, é possível criar uma lógica em torno disso para acionar outras mensagens de saída como parte de um fluxo geral de mensagens.

Conclusão

Neste artigo, analisamos exemplos de envio e recebimento de mensagens individuais de diferentes tipos. No entanto, o potencial do RCS, em comparação com canais como SMS e MMS, reside na combinação desses diferentes tipos de mensagens para criar fluxos de mensagens ricos e interativos, que podem ser utilizados em diversos casos de uso transacionais ou de marketing.

O RCS oferece o potencial para experiências de mensagens envolventes, de maneira semelhante à oferecida por aplicativos de mensagens como o WhatsApp, o Facebook Messenger e o Viber. O suporte nativo ao RCS nos dispositivos dos clientes significa que eles não precisam baixar um aplicativo específico para receber essas mensagens, o que amplia enormemente o alcance potencial das mensagens RCS em comparação com os canais de aplicativos de mensagens específicos. O obstáculo a esse alcance sempre foi a falta de suporte da Apple aos dispositivos, mas, com o RCS previsto para ser compatível com o iOS 18, agora é um ótimo momento para começar a usar o RCS e incorporá-lo ao seu sistema de mensagens.

Se você está animado com o RCS e quer saber mais, pode mergulhar direto na nossa documentação para desenvolvedores. Enquanto estiver lá, você pode conferir todos os outros canais que a Messages API oferece ou explorar nossas diversas outras APIs de comunicação.

Também adoraríamos que você se juntasse a nós no Slack dos desenvolvedores da Vonage ou nos enviar uma postagem no X, e entraremos em contato com você!

Compartilhar:

https://a.storyblok.com/f/270183/373x376/e8d3211236/karl-lingiah.png
Karl LingiahDefensor da Comunidade de Desenvolvedores Ruby

Karl é um Developer Advocate da Vonage, com foco na manutenção de nossos SDKs de servidor em Ruby e na melhoria da experiência dos desenvolvedores da nossa comunidade. Ele adora aprender, criar coisas, compartilhar conhecimento e tudo o que esteja relacionado à tecnologia da web em geral.