PHP + Twilio + WhatsApp: vamos jogar?
Tempo de leitura: 4 minutos
Há 1,5 bilhão de pessoas usando a plataforma completa de mensagens criptografadas do WhatsApp para se comunicar. Muitas dessas pessoas preferem usar o WhatsApp em vez de SMS e de outras plataformas de mensagens. Atualmente, esse é o aplicativo de mensagens mais popular do mundo.
A Twilio está adicionando opções às mesmas chamadas de API que você usa para enviar e receber mensagens SMS. Desse modo, você pode alcançar esses usuários da maneira que eles preferem: no WhatsApp.
No console da Twilio, é possível usar a API Sandbox para WhatsApp da Twilio para testar esse novo canal para conectar seu software globalmente.
Veja algumas das possibilidades que a API Sandbox para WhatsApp da Twilio oferece com o PHP.
Antes de começar
Para codificar seguindo este post, será necessário:
- Um ambiente de desenvolvimento PHP para executar seu código, incluindo:
- Uma conta da Twilio
- Uma conta do WhatsApp
Configuração do seu projeto
Primeiramente, vamos criar um novo diretório para o nosso projeto e, depois, criar e salvar um arquivo chamado composer.json
com este conteúdo:
Com essas instruções, informamos o Composer de que este projeto requer a versão PHP 7.1 ou superior, o SDK para PHP da Twilio e o projeto vlucas/phpdotenv , que vamos utilizar para armazenar informações que não queremos salvar em um repositório público (veremos mais sobre isso posteriormente). Dentro do nosso novo diretório de projetos, executaremos o seguinte comando para que o Composer siga estas instruções:
composer install
Configuração da API Sandbox para WhatsApp da Twilio
Atualmente, somente contas corporativas aprovadas têm permissão para acessar o WhatsApp por meio da API da Twilio. No entanto, podemos usar a API Sandbox para WhatsApp da Twilio para começar a experimentar.
Antes de começar, é necessário definir algumas configurações. Acesse o Sandbox no console da Twilio, localizado no menu "Programmable SMS" (SMS programável). Para ativar o Sandbox, selecione um dos números dele, clique para concordar com os termos do WhatsApp e clique em "Activate Sandbox" (Ativar sandbox). Na próxima seção, há algumas opções para vincular a conta pessoal do WhatsApp à sandbox.
Quando a conta pessoal do WhatsApp estiver vinculada, poderemos usar os formulários de modelo no Sandbox de diversas maneiras. No entanto, criaremos alguns scripts PHP para interagir com a API para WhatsApp da Twilio. Vamos voltar a esta página mais tarde para adicionar o URL do ngrok do aplicativo à seção "Connect the Sandbox to your App" (Conecte a sandbox ao seu app). Portanto, vamos deixá-la aberta por enquanto.
Envio da mensagem de modelo
Há duas maneiras de enviar uma mensagem de saída do WhatsApp pelo Sandbox. Podemos responder quando nosso número do WhatsApp nos enviar uma mensagem ou podemos enviar uma mensagem que corresponda a um dos modelos disponíveis.
Em nossa primeira tentativa, enviaremos uma mensagem para nosso número do WhatsApp usando uma mensagem de modelo. Não precisamos usar os formulários no console, desde que o corpo da nossa mensagem corresponda a um dos modelos em que {{}} é substituído por dados reais.
Em nosso diretório de projetos, criaremos um novo arquivo sendMessage.php
com o seguinte conteúdo:
As linhas $dotenv
carregam o pacote vlucas/phpdotenv
para que possamos colocar informações que não queremos compartilhar em um arquivo .env
, que será carregado em nosso código usando as chamadas getenv
.
Veja como ficará o arquivo .env
no nosso projeto:
O valor que provavelmente não precisaremos alterar é o TWILIO_WHATSAPP_NUMBER
, pois há apenas algumas opções. No entanto, se selecionarmos um número do Sandbox diferente, precisaremos substituí-lo aqui também.
O restante do nosso código sendMessage.php
acima extrai nossa TWILIO_ACCOUNT_SID
e TWILIO_AUTH_TOKEN
do arquivo .env
e usa essas informações para criar uma nova instância do Twilio Rest Client conectada à nossa conta da Twilio.
Em seguida, adicionaremos o restante do código que precisamos para enviar nossa mensagem em sendMessage.php
:
Estamos usando a mensagem de modelo "Your {{1}} code is {{2}}" (Seu código de {{1}} é {{2}}). Temos que corresponder exatamente ao modelo ou ocorrerá um erro quando enviarmos nossa mensagem. Além disso, precisamos substituir {{1}} e {{2}} para termos um pouco de diversão.
Observe que o código que estamos usando para enviar nossa mensagem é quase idêntico ao código que utilizaríamos para enviar um SMS usando a API da Twilio, exceto pelo whatsapp:
prefixado aos nossos números.
Nosso comando print no final é apenas para que possamos ver evidências de uma mensagem enviada com sucesso quando executarmos nosso comando:
php sendMessage.php
Depois de executar esse comando, podemos dar uma olhada em nosso WhatsApp para ver a mensagem.
Mensagens interativas
Isso foi muito divertido! Mas vamos eliminar as restrições do nosso modelo com um script interativo. Nossa conta do WhatsApp precisará iniciar a interação, mas nosso script estará livre para responder com qualquer texto que quisermos depois disso.
Criaremos um novo arquivo em nosso diretório de projetos receiveMessage.php
com o seguinte conteúdo:
Aqui não precisamos inserir os dados da nossa conta. Estamos respondendo a uma mensagem para que a API da Twilio já saiba com qual conta está interagindo.
A mensagem que recebemos estará no $_REQUEST["Body"]
que usamos para determinar a resposta correta. Se não recebermos um número entre 1 e 5, responderemos com uma mensagem informando ao remetente como jogar. Caso contrário, podemos informar ao remetente se ele adivinhou ou não nosso número corretamente.
A instrução print no final desse script é importante, e a resposta não será enviada se nos esquecermos de incluí-la.
Para receber uma mensagem usando a API da Twilio, nosso script precisará estar acessível por meio de um URL público. É por isso que temos a configuração do ngrok. Executaremos o ngrok em nosso projeto:
ngrok http 80
O resultado em nosso console será parecido com isto:
Em seguida, copiaremos o URL gerado e o colaremos no formulário "Connect the Sandbox to Your App" (Conecte o Sandbox ao seu app) que deixamos aberto no console, especificamente no campo "A message comes in" (Mensagem sendo recebida). Precisamos anexar "/receiveMessage.php" ao URL e salvar.
Estamos prontos para jogar!
Sucesso!
Agora, usamos a API Twilio para WhatsApp para enviar uma notificação de modelo e criar uma interação de chat programático com nossa conta pessoal do WhatsApp no PHP.
Você pode continuar experimentando com o WhatsApp usando os diferentes modelos disponíveis no Sandbox do console. Confira a documentação oficial, na qual também contém notas sobre os recursos que chegarão em breve!
Você também pode buscar inspiração em alguns dos projetos divertidos que os membros da equipe reuniram, como combinar o WhatsApp com o Flex, usar a Twilio e o WhatsApp para criar um bot de pesquisa npm ou criar traduções de emoji com a API para WhatsApp da Twilio e o Node.js.
Você pode se divertir muito! Mal posso esperar para ver o que você vai criar!
Publicações relacionadas
Recursos relacionados
Twilio Docs
De APIs a SDKs e aplicativos de amostra
Documentação de referência de API, SDKs, bibliotecas auxiliares, guias de início rápido e tutoriais para sua linguagem e plataforma.
Centro de Recursos
Os mais recentes e-books, relatórios do setor e webinars
Aprenda com especialistas em engajamento do cliente para melhorar sua própria comunicação.
Ahoy
Centro da comunidade de desenvolvedores da Twilio
Melhores práticas, exemplos de código e inspiração para criar comunicações e experiências de engajamento digital.