Como confirmar a entrega no C# com ASP.NET MVC
Neste breve tutorial, mostraremos como rastrear o status de entrega das mensagens que você envia com o Programmable SMS em seu aplicativo da web do ASP.NET MVC. A Twilio notificará você sobre o status das suas mensagens SMS e MMS por meio de um webhook, após o qual você poderá registrar essas informações ou optar por enviar seus dados de entrega de volta à Twilio.
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 os recursos modernos de linguagem C# e requerem o .NET Framework versão 4.5 ou superior. Eles também usam o SDK C# da Twilio.
Se você precisar de ajuda para criar um novo projeto ASP.NET MVC, check out our mini-guide (confira nosso miniguia) sobre o tópico”.
O que é um Webhook?
Webhooks são retornos de chamada HTTP definidos pelo usuário. Geralmente, eles são acionados por algum evento, como receber uma mensagem SMS ou uma chamada telefônica. Quando esse evento ocorre, a Twilio faz uma solicitação HTTP (geralmente uma POST ou GET) para o URL configurado para o webhook.
Para lidar com um webhook, você precisará criar um pequeno aplicativo da web que possa aceitar solicitações HTTP.
Os webhooks funcionam da mesma forma para todos os aplicativos da Twilio:
- A Twilio faz uma solicitação HTTP para um URI que você fornece.
- Seu aplicativo executa qualquer lógica que seja necessária: leitura/gravação de um banco de dados, integrar‐se a outra API ou executar algum cálculo.
- Seu aplicativo então envia à Twilio uma resposta TwiML com as instruções que você deseja que a Twilio execute.
Receba eventos de status no seu aplicativo da Web
Os status para os quais você pode receber notificações incluem:
- aceito
- em fila
- enviando
- enviado
- falha
- entregue
- não entregue
- recebendo
- recebido
- lido (somente WhatsApp)
Para obter uma descrição completa desses e de outros status de mensagens, see the API reference documentation (consulte a documentação de referência à API).
Para que a Twilio chame seu webhook, você precisa fornecer um URL para seu aplicativo no parâmetro statusCallback
de cada mensagem para a qual você deseja os retornos de chamada de status.
Vamos dar uma olhada em um exemplo de como você pode especificar esse parâmetro. Normalmente, você incluiria um URL que aponta para seu aplicativo. Aqui, usaremos um URL de RequestBin para que possamos inspecionar facilmente as solicitações de webhook que a Twilio envia:
Para que este exemplo de código seja executado, faça o seguinte:
- Preencha seu
accountSid
eauthToken
(encontrados no Twilio Console dashboard (painel do console da Twilio)) - Substitua o número de telefone
from
por one of your Twilio numbers (um dos seus números da Twilio) - Substitua o número de telefone
to
pelo número do seu celular.
Não há problema em codificar suas credenciais ao testar localmente, mas você deve usar variáveis de ambiente para mantê‐las secretas antes de confirmar qualquer código ou implantar na produção. Confira como definir variáveis de ambiente para obter mais informações.
Em seguida, acesse RequestBin, e crie uma nova lixeira clicando no link "lixeira pública" abaixo do botão "Criar lixeira de solicitação" azul. Copie o URL da nova lixeira, que é exibido próximo à parte superior da página. Substitua o valor do parâmetro statusCallback
no trecho de código pelo URL da sua lixeira.
Ao executar o código, você deve receber sua mensagem de texto. Além disso, você deve ver pelo menos uma solicitação entrar na lista de solicitações RequestBin com conteúdo semelhante a:
"AccountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"From": "+15017250604"
"MessageSid": "SM1342fe1b2c904d1ab04f0fc7a58abca9"
"MessageStatus": "sent"
"SmsSid": "SM1342fe1b2c904d1ab04f0fc7a58abca9"
"SmsStatus": "sent"
Esta solicitação mostra o MessageStatus enviada. Supondo que tudo tenha sido bem‐sucedido, você verá isso seguido por outra solicitação com status entregue (ele pode demorar alguns minutos para aparecer).
Depois de entender como o retorno de chamada de status funciona, você estará pronto para lidar com o retorno de chamada em seu próprio aplicativo.
Veja aqui um exemplo de como você pode fazer isso registrando o status de cada mensagem:
Obter eventos de status para mensagens geradas pelo TwiML
Responder mensagens usando o TwiML? Você ainda pode rastrear as ações do usuário por meio de webhooks de retorno de chamada.
Ao reply to an incoming message (responder uma mensagem recebida) com o verbo <Message>, você também pode fornecer um atributo action (ação) para especificar o URL para seu webhook de retorno de chamada. O retorno de chamada pode ser o mesmo que aqueles explorados nas seções anteriores.
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Message action="http://postb.in/b/1234abcd">This message will be tracked!</Message>
</Response>
Fornecer feedback de entrega de mensagens à Twilio
De feedback direto de parceiros de operadoras a dados de entrega de alguns clientes maiores, bem como várias outras técnicas de monitoramento, a Twilio tem muitas fontes de dados que ajudam a otimizar a capacidade geral de entregas. Mas nada supera os dados coletivos ativos dos nossos clientes.
O Message Feedback API resource (recurso API de feedback de mensagem) da Twilio permite que você reporte informações críticas de capacidade de entrega de volta à Twilio de forma programada. As ações que indicam que uma mensagem foi recebida podem ser usadas pela Twilio para identificar problemas de rede e melhorar a capacidade de entrega das suas mensagens. Ao analisar os dados agregados e os dados específicos da sua conta, temos mais chances de melhorar a entrega das suas mensagens.
Quer saber mais? Confira this guide on how to send message delivery feedback to Twilio from your application (este guia sobre como enviar feedback de entrega de mensagens para a Twilio a partir do seu aplicativo).
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.