Como transmitir mensagens de texto SMS de aplicativos web com Python 3 Django
Tempo de leitura: 4 minutos
As mensagens de texto SMS (Short Message Service, serviço de mensagens curtas) são fundamentais para comunicações rápidas. Eles também são fáceis de enviar em escala, combinando um aplicativo da Web Django com uma API (Application Programming Interface, interface de programação de aplicativos).
Neste tutorial, vamos criar um projeto simples do Django com o recurso SMS que transmite mensagens a vários destinatários.
Se quiser ir mais longe no aprendizado do Python ou da API de SMS da Twilio, confira o incrível jogo de treinamento TwilioQuest.
Dependências necessárias do projeto
O Python 3 é necessário para este tutorial porque não há mais suporte para o Python 2 desde 31 de dezembro de 2019. Usaremos o Python 3.8 para criar este tutorial.
Também usaremos as seguintes dependências de aplicativos em nosso aplicativo:
- Estrutura da Web do Django, versão 2.2.x
- pip e virtualenv
- A biblioteca auxiliar para Python da Twilio, versão 6.32.0 ou posterior
- Uma conta gratuita da Twilio. Inscreva-se para obter uma conta para que você possa usar as APIs da Twilio
Se precisar de ajuda para configurar seu ambiente de desenvolvimento antes de executar o código, consulte este guia para configurar o Python 3 e o Django no Ubuntu 16.04 LTS.
O código desta publicação do blog também está disponível no GitHub no diretório django/djsms do repositório do Git python-twilio-example-apps no GitHub.
Como instalar as dependências do projeto do Python
Nosso código usará a biblioteca auxiliar da Twilio para facilitar o envio de mensagens de texto do Python. Vamos instalar a biblioteca auxiliar de PyPI em um virtualenv.
Mas primeiro precisamos criar o ambiente virtual. Em seu terminal, use o seguinte comando para criar um novo virtualenv e ativá-lo:
Instale o Django e a biblioteca auxiliar da Twilio:
Quando o comando for concluído, você verá algumas saídas semelhantes às seguintes linhas:
Neste ponto, instalamos as dependências necessárias e agora podemos usá-las para criar nosso projeto.
Como criar um projeto do Django
Começaremos nosso projeto usando a ferramenta django-admin
do Django para criar uma estrutura de código boilerplate.
Mude para o diretório onde você desenvolve seus aplicativos. Por exemplo, normalmente eu uso /Users/matt/devel/py/
no meu Mac ou /home/matt/devel/py
no Linux.
Execute o seguinte comando para iniciar um projeto do Django chamado djsms
e mude para o diretório recém-criado:
Crie um novo aplicativo Django chamado broadcast
dentro do projeto djsms
:
O Django gerará uma nova pasta chamada broadcast
depois que o comando terminar. Precisamos atualizar as configurações do projeto e os arquivos de URLs. Portanto, certifique-se de que o app broadcast
esteja disponível.
Abra djsms/settings.py
:
Certifique-se de alterar os valores padrão DEBUG
e SECRET_KEY
em settings.py
antes de fazer check-in dos arquivos no Git ou implantar qualquer código na produção. Proteja seu aplicativo adequadamente com as informações da lista de verificação de implantação de produção do Django para que você não adicione seu projeto à lista de aplicativos hackeados na Web.
Salve e feche settings.py
. Abra o arquivo djsms/urls.py
e adicione os URLs do app broadcast
à sua lista de URLs do projeto principal:
As duas novas linhas de código acima conectam o arquivo urls.py
principal ao arquivo broadcast/urls.py
que será gravado em seguida.
Como codificar o app de transmissão
Em seguida, mude para o diretório broadcast
. Crie um novo arquivo chamado urls.py
para conter uma rota de URL para envio de SMS:
Abra o arquivo urls.py
vazio e adicione estas linhas de código:
No código acima, temos uma única rota de URL que corresponde a broadcast
como um caminho que mapeia para uma função de visualização broadcast_sms
ainda a ser gravada.
Precisamos escrever essa função dentro de broadcast/views.py
para lidar com o envio de mensagens. Salve urls.py
e abra views.py
e atualize-o com as seguintes linhas:
Neste código acima, importamos o arquivo settings
do Django para que possamos acessar as configurações do nosso projeto, bem como a classe HttpResponse
para retornar um código de status simples HTTP 200
com uma resposta de texto. Também importamos a biblioteca auxiliar para Python da Twilio.
A função broadcast_sms
lida com a maior parte do trabalho. Ela especifica uma mensagem a ser enviada, instancia o cliente da biblioteca auxiliar e faz loops por cada número de telefone listado na variável SMS_BROADCAST_TO_NUMBERS
. Se um número de telefone for especificado (não estiver em branco), ele chamará a API da Twilio para enviar o SMS para o número de telefone do destinatário. Após a conclusão do loop, retornamos uma resposta HTTP.200
com o texto "messages sent!" (mensagens enviadas!).
Antes de testar nosso aplicativo, precisamos obter um número de telefone da Twilio e credenciais para nos autenticar na API.
Acessar a API de SMS da Twilio
Faça login em sua conta existente da Twilio ou inscreva-se em uma nova conta gratuita da Twilio.
Após o processo de registro (ou login), você estará no Console da Twilio, onde você poderá acessar o Account SID (SID da conta) e o Auth Token (token de autenticação), conforme mostrado abaixo:
Defina o Account SID (SID da conta) e o Auth Token (token de autenticação) como variáveis de ambiente para seu aplicativo Django ler e usar. Crie um arquivo chamado .env e cole-o nos seguintes conteúdos.
(Você também pode copiar o arquivo template.env
incluído com o repositório Git no diretório django/djsms/
e renomeá-lo como .env
.)
Preencha as variáveis TWILIO_ACCOUNT_SID
e TWILIO_AUTH_TOKEN
com suas credenciais no Console. Você também deve ter um número de telefone da Twilio no processo de registro ou pode comprar um novo número de telefone para usar neste tutorial.
Invoque o arquivo .env
para definir estas variáveis:
Observe que se você estiver no Windows, definir as variáveis de ambiente é um pouco diferente. Então, dê uma olhada neste tutorial para obter as instruções detalhadas.
Temos nosso código e as credenciais em vigor. Agora é hora de fazer o projeto funcionar.
Como testar uma transmissão SMS
Acione o servidor de desenvolvimento do Django:
Acesse https://localhost:8000/broadcast em seu navegador da web para iniciar o envio de mensagens. No navegador, você deve ver:
Depois de um momento, todos os números de telefone listados em SMS_BROADCAST_TO_NUMBERS
receberão seus SMS:
Incrível, funcionou! É hora de ver o que é esse link e conferir o TwilioQuest para saber o que mais você pode fazer com o Python e o Programmable SMS.
Como finalizar a transmissão de SMS do Django
Acabamos de criar um aplicativo para enviar SMS a vários destinatários usando o Python 3.8 e a estrutura da web Django.
Agora você pode construir em cima do meu código e expandir seu aplicativo armazenando números de telefone no banco de dados com o ORM do Django, ou criando a interface do usuário para facilitar a personalização de suas mensagens.
Aqui estão alguns outros tutoriais excelentes sobre o Python que você deve tentar:
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.