Lembretes de agendamentos com PHP e Laravel
Ahoy! Agora recomendamos que você crie seus lembretes de agendamento por SMS com a funcionalidade de programação de mensagens integrada da Twilio. Acesse a documentação de recursos de mensagens para saber mais sobre como programar mensagens SMS!
Este aplicativo da web Laravel 5 mostra como criar agendamentos para clientes em uma data futura e enviar lembretes para esses agendamentos em um background job (trabalho em segundo plano) que é executado a cada poucos minutos.
Neste tutorial, vamos destacar os principais bits de código que fazem este aplicativo funcionar. Confira o README do projeto no GitHub para ver como executar o código por conta própria.
Confira como a Yelp usa o SMS para confirmar reservas de restaurantes para clientes.
Vamos começar! Clique no botão abaixo para começar.
Configurar o aplicativo para usar a Twilio
Antes de podermos usar a API da Twilio para enviar mensagens de texto de lembrete, precisamos configurar nossas credenciais de conta. Elas podem ser encontradas no Twilio Console. Será necessário um número de telefone habilitado para SMS, você pode encontrar ou comprar um novo para usar aqui.
Configuramos esses valores usando o Dotenv, a biblioteca de configuração escolhida para os aplicativos do Laravel. Mais informações sobre como configurar este aplicativo podem ser encontradas no README do projeto.
Em seguida, vamos ver como criamos um novo Appointment
.
Criar um novo agendamento
Para enviar um lembrete de agendamento, primeiro precisamos criar um agendamento! No controlador, tomamos as informações enviadas em um formulário (especialmente o nome e o número de telefone de um cliente, mais um horário para o agendamento no futuro) e as salvamos em um modelo Appointment
.
Observe que usamos a biblioteca de datas Carbon para facilitar a análise e a realização de operações simples com o tempo.
Agora que criamos o Appointment
, vamos ver como agendar um lembrete para ele.
Agendar um trabalho para enviar lembretes
A cada dez minuto, gostaríamos que nosso aplicativo verificasse o banco de dados de agendamentos para ver se algum agendamento está chegando, que exige o envio de lembretes. Configuramos o código de trabalho que gostaríamos de executar e o intervalo no qual executá‐lo aqui.
Com nosso trabalho configurado, estamos prontos para escrever o código de comando do console real que enviará nossos lembretes.
Criar um comando de console para executar o trabalho
Para realmente executar nossa lógica de trabalho recorrente, criamos um comando de console para o Artisan que consulta o banco de dados para agendamentos futuros e envia lembretes conforme necessário. Como um bônus adicional, definir nossa lógica de trabalho dessa maneira nos permite executar o trabalho de lembrete sempre que quisermos a partir da linha de comando.
Vamos aprofundar ainda mais na classe ApplicationReminder
Encontrar agendamentos que precisam de lembretes
Nosso trabalho recorrente usa uma instância da classe AppointmentReminder
para consultar o banco de dados para agendamentos que chegam nos próximos dez minutos e enviar mensagens de lembrete.
No construtor, executamos a consulta do banco de dados usando um escopo personalizado no modelo Appointment
. Isso deve nos dar uma lista de todos os agendamentos com uma data e hora que se enquadram nos próximos dez minutos.
Agora, vamos configurar o cliente Twilio REST para enviar algumas mensagens de lembrete de SMS.
Configurar um cliente de API da Twilio
Também no construtor AppointmentReminder
, criamos um cliente Twilio REST para enviar lembretes via SMS. Inicializamos com as credenciais da conta da Twilio que configuramos anteriormente.
Com o cliente e os lembretes em mãos. Tudo o que resta a fazer é enviar um SMS para eles.
Enviar mensagens de lembrete com a API da Twilio
Essas duas funções privadas são chamadas para cada agendamento que estiver chegando e que exija que um lembrete seja enviado. O primeiro formata o texto da mensagem a ser enviada. O segundo realmente usa o cliente da API REST da Twilio para enviar uma mensagem de texto.
Fornecemos um parâmetro to
que é o número de telefone do cliente, um parâmetro from
que é um número em nossa conta e um parâmetro body
que contém o texto da mensagem.
É isso! Nosso aplicativo Laravel está pronto para enviar lembretes para os próximos agendamentos.
Para onde ir em seguida?
Esperamos que você tenha achado este exemplo de aplicativo útil. Se você for um desenvolvedor do PHP que trabalha com a Twilio, talvez queira conferir outros tutoriais:
Coloque um botão em sua página da web que conecta os visitantes ao suporte ao vivo ou à equipe de vendas por telefone.
Melhore a segurança da funcionalidade de login integrado do Laravel adicionando a autenticação de dois fatores por mensagem de texto.
Isso ajudou?
Obrigado por conferir este tutorial! Se você tiver algum feedback para compartilhar, entre em contato pelo Twitter... adoraríamos ouvir suas ideias e saber o que você está desenvolvendo!
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.