Receber e responder mensagens SMS e MMS no PHP
Neste guia, mostraremos como usar o Programmable SMS para responder mensagens SMS recebidas em seu aplicativo da web do PHP.
Quando alguém envia uma mensagem de texto para seu número da Twilio, a Twilio pode chamar um webhook que você cria no PHP a partir do qual você pode enviar uma resposta usando o TwiML. Este guia o ajudará a dominar esses conceitos básicos em pouco tempo.
A Twilio pode enviar ao seu aplicativo da Web uma solicitação HTTP quando certos eventos ocorrem, como uma mensagem de texto recebida para um dos números de telefone da Twilio. Essas solicitações são chamadas de webhooks ou retornos de chamada de status. Para mais informações, consulte o nosso guia Introdução aos webhooks da Twilio. Encontre outras páginas do webhook, como um guia de segurança e perguntas frequentes na seção Webhooks dos documentos.
Os trechos de código neste guia são escritos usando o PHP versão 7.1, assumem que um webserver local existe e usam o Twilio PHP SDK (SDK do PHP da Twilio).
Vamos começar!
Criação do seu webhook
Mais tarde, configuraremos um número de telefone da Twilio para enviar uma solicitação HTTP a um URL que especificamos sempre que alguém envia uma mensagem a esse número. Antes de configurarmos isso, vamos criar o código do PHP que vai lidar com receber e responder essas mensagens.
Vamos criar um novo arquivo PHP replyToMessage.php
para manter nosso código. Se ainda não instalou a biblioteca auxiliar da Twilio, você vai querer do that now (fazer isso agora).
Aqui estamos usando a biblioteca auxiliar para gerar e enviar o TwiML de volta para a API da Twilio, que responderá às mensagens recebidas usando essas instruções.
Agora precisamos de um URL público para onde a API da Twilio possa enviar as solicitações recebidas.
Para um projeto real, queremos implantar nosso código em um provedor de hospedagem na web ou na nuvem (do qual there are many (há muitos)), mas para fins de aprendizado ou teste, é razoável usar uma ferramenta como o ngrok para criar um URL público temporário para nosso servidor da web local.
Configurar seu número da Twilio
Agora que temos um URL para nosso código, queremos adicioná‐lo à configuração de um Twilio number we own (número Twilio que possuímos):
- Faça login em Twilio.com e acesse a Console's Numbers page (Página de Números do Console)
- Clique no número de telefone que queremos usar para este projeto
- Localize a seção mensagens e a opção "A MESSAGE COMES IN" ("UMA MENSAGEM CHEGA")
- Selecione "Webhook" e cole no URL que queremos usar, certificando‐se de incluir o nome do arquivo relevante:
Se quiséssemos que nosso webhook recebesse outro tipo de solicitação, como GET
ou PUT
, poderíamos especificar isso usando o menu suspenso à direita do nosso URL.
URL do webhook de backup
Você notará no console que também há um local para fornecer um URL de webhook para quando houver "PRIMARY HANDLER FAILS." ("FALHA NO MANIPULADOR PRIMÁRIO.") A Twilio chamará esse URL se seu manipulador primário retornar um erro ou não retornar uma resposta dentro de 15 segundos. Consulte nosso Availability and Reliability guide (guia de Disponibilidade e confiabilidade) para obter mais detalhes sobre o URL de fallback.
Proteja seus webhooks
A Twilio é compatível com HTTP básico e Autenticação Digest. A autenticação permite proteger com senha seus URLs TwiML no servidor da Web para que somente você e a Twilio possam acessá‐los.
Saiba mais sobre a autenticação HTTP e a validação de pedidos recebidos here (aqui).
Responder com mídia (mensagem MMS)
Podemos enviar um MMS usando o método media
para adicionar um URL de imagem à nossa mensagem. Podemos enviar várias imagens adicionando mais chamadas de media
com URLs de imagem adicionais.
Depois de atualizar o código, pode ser necessário reiniciar o servidor local. Quando você enviar um texto para o número Twilio que acabou de configurar com seu webhook, você deve obter uma resposta com a imagem adicionada! Consulte a API Reference (Referência de API) para obter mais informações.
As mensagens MMS só podem ser enviadas e recebidas por números que têm o recurso de MMS. Você pode check the capabilities (verificar os recursos) dos números no portal da conta ou consultar o recurso Available Phone Numbers (Números de telefone disponíveis) para procurar números da Twilio que estejam habilitados para MMS.
Respostas personalizadas para mensagens SMS recebidas
Enviamos respostas de texto e imagem, mas e se quisermos escolher nossa resposta com base na mensagem que recebemos? Sem problemas!
O conteúdo da mensagem recebida estará no parâmetro Body
da solicitação de API recebida. Vamos dar uma olhada em como podemos usar isso para personalizar nossa resposta.
Aqui, criamos uma mensagem padrão e uma variedade de opções para responder à mensagem recebida específica "never gonna." (nunca vou). Se alguma mensagem for exibida além de "never gonna." (nunca vou), então enviamos nossa mensagem padrão. Quando a mensagem recebida for "never gonna." (nunca vou), selecionaremos uma das nossas opções aleatoriamente. Depois de atualizarmos nosso código, poderemos tentar enviar nosso número da Twilio para um SMS que diz "never gonna." (nunca vou), ou qualquer outra coisa, e devemos obter a resposta correspondente.
Aprimorar mensagens com add-ons
Precisa de mais informações sobre o número de telefone que enviou a mensagem? Precisa analisar o próprio SMS em busca de sentimento ou outros dados? Os Add-ons estão disponíveis no Add-ons Marketplace (Marketplace de Add-ons) para realizar essas tarefas e muito mais.
Para saber como habilitar Add-ons for your incoming SMS messages (Add-ons para suas mensagens SMS recebidas), consulte nosso Add-ons quickstart (Início rápido de Add-ons).
Para onde ir em seguida?
Pronto para se aprofundar no tratamento de mensagens recebidas? Confira nosso guia sobre como Create an SMS Conversation (Criar uma conversa de SMS) e nosso tutorial de Automated Survey (Pesquisa automatizada).
Precisa de ajuda?
Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.