Mascaramento de telefone com Python e Flask
Este aplicativo de amostra de Flask foi modelado após a experiência de aluguel criada pela AirBnB, mas com mais Klingons.
Os usuários anfitriões podem oferecer propriedades de aluguel que outros usuários hóspedes podem reservar. O hóspede e o anfitrião podem se comunicar anonimamente por meio de um número de telefone da Twilio descartável criado apenas para uma reserva. Neste tutorial, mostraremos os principais bits de código para fazer isso funcionar.
Para executar este aplicativo de exemplo, baixe o código e siga as instruções no GitHub.
Implicações legais do gerenciamento de comunicações entre usuários
Se você optar por gerenciar as comunicações entre seus usuários, incluindo chamadas de voz, mensagens baseadas em texto (por exemplo, SMS) e bate-papo, você pode precisar cumprir certas leis e regulamentos, incluindo aqueles relacionados à obtenção de consentimento. Informações adicionais sobre as considerações de conformidade legal e as melhores práticas recomendadas para usar a Twilio para gerenciar e registrar comunicações entre seus usuários, como ao usar o Twilio Proxy, podem ser encontradas aqui.
Aviso: A Twilio recomenda que você consulte o seu conselho jurídico para se certificar do cumprimento de todas as leis aplicáveis em relação às comunicações que você registra ou armazena usando a Twilio.
Criar uma reserva
A primeira etapa para conectar um hóspede e um anfitrião é criar uma reserva.
Tratamos aqui um formulário de envio para uma nova reserva. Depois de salvar a reserva no banco de dados, enviamos ao anfitrião uma mensagem SMS solicitando que ele aceite ou rejeite a reserva.
Parte do nosso sistema de reservas está recebendo solicitações de reserva de locatários em potencial. No entanto, essas reservas precisam ser confirmadas. Vamos ver como lidaríamos com essa etapa.
Confirmar a reserva
Antes de a reserva ser finalizada, o anfitrião precisa confirmar que a propriedade foi reservada. Saiba como automatizar esse processo em nosso primeiro tutorial do AirTNG Automação do fluxo de trabalho.
Uma vez confirmada a reserva, precisamos comprar um número de telefone da Twilio que o hóspede e o anfitrião podem usar para se comunicar.
Comprar um número de telefone da Twilio
Aqui usamos a biblioteca auxiliar Python da Twilio para procurar e comprar um novo número de telefone para associar à reserva. Começamos pesquisando um número com um código de área local. Se não encontrarmos um, pegamos qualquer número de telefone disponível no país.
Quando compramos o número, designamos um aplicativo TwiML que lidará com solicitações de webhook quando o novo número receber uma chamada ou mensagem de texto.
Em seguida, salvamos o novo número de telefone em nosso modelo Reservation
. Portanto, quando nosso aplicativo recebe chamadas ou mensagens para esse número, sabemos a qual reserva a chamada ou o texto pertence.
Agora que cada reserva tem um número de telefone da Twilio, podemos ver como o aplicativo pesquisará as reservas à medida que as chamadas do hóspede ou do anfitrião são recebidas.
Encontrar uma reserva
Quando alguém enviar mensagens ou ligar para um dos números de telefone da Twilio, que compramos para uma reserva, a Twilio faz uma solicitação para o URL definido no aplicativo TwiML. Essa solicitação conterá alguns metadados úteis:
- O número
incoming_phone_number
que originalmente chamou ou enviou um SMS. - O número de telefone
anonymous_phone_number
da Twilio que acionou essa solicitação.
Dê uma olhada na Documentação de SMS da Twilio e na Documentação do Voice da Twilio para obter uma lista completa dos parâmetros que você pode usar.
Em nosso código, usamos o parâmetro To
enviado pela Twilio para encontrar uma reserva que tenha o número que compramos armazenado nela, pois esse é o número para o qual os anfitriões e os hóspedes ligarão e enviarão SMS.
Em seguida, vamos ver como conectar o hóspede e o anfitrião via SMS.
Conectar via SMS
Nosso aplicativo TwiML deve ser configurado para enviar solicitações HTTP a esse método do controlador em qualquer mensagem de texto recebida. Nosso aplicativo responde com TwiML para dizer a Twilio o que fazer em resposta à mensagem.
Se a mensagem inicial enviada para o número anônimo foi enviada pelo anfitrião, nós a encaminhamos para o hóspede. Da mesma forma, se a mensagem original foi enviada pelo hóspede, nós a encaminhamos para o anfitrião.
Escrevemos uma função de ajuda chamada gather_outgoing_phone_number
para nos ajudar a determinar para qual parte encaminhar a mensagem.
Vamos ver como conectar o hóspede e o anfitrião por meio da próxima chamada telefônica.
Conectar via chamada telefônica
Nosso aplicativo Twilio enviará solicitações HTTP para esse método em qualquer chamada de voz recebida. Nosso aplicativo responde com instruções TwiML que informam a Twilio para Play
um arquivo de áudio MP3 introdutório e, em seguida Dial
para o hóspede ou anfitrião, dependendo de quem iniciou a chamada.
É isso! Acabamos de implementar comunicações anônimas que permitem que seus clientes se conectem enquanto protegem sua privacidade.
Para onde ir em seguida?
Se você é um desenvolvedor Python que trabalha com a Twilio, confira estes outros tutoriais:
Crie uma experiência de atendimento ao cliente perfeita criando uma Árvore telefônica URA para sua empresa.
Meça a eficácia de diferentes campanhas de marketing atribuindo um número de telefone exclusivo a diferentes anúncios e rastreie quais têm as melhores taxas de chamadas enquanto obtém alguns dados sobre os próprios autores da chamada.
Isso ajudou você?
Agradecemos por conferir este tutorial! Se você tiver algum feedback para compartilhar conosco, adoraríamos ouvir você. Faça um tweet citando @twilio para nos informar o que você acha.
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.