You are viewing the Portuguese (Brazil) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Classifique esta página:

Lembretes de agendamentos com Node.js e Express

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!

Esse aplicativo da web do Node.js Express envia lembretes para agendamentos futuros que os clientes podem criar por meio do aplicativo também. Isso é feito por meio de uma tarefa em segundo plano que é executada a cada minuto.

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.

Vamos começar!

Configurar o aplicativo para usar a Twilio

Antes de podermos usar a API do Twilio para enviar mensagens de texto de lembrete, precisamos configurar nossas credenciais de conta. Elas podem ser encontradas no Twilio Console. Você também precisará de um número de telefone habilitado para SMS - você pode encontrar ou comprar um novo aqui.

Loading Code Sample...
        
        
        .env

        Configure the application to use Twilio

        .env

        Para enviar um lembrete de agendamento, primeiro precisamos ter um agendamento!

        Vamos criar alguns agendamentos

        Criar um novo agendamento

        No controlador, inserimos as informações necessárias (nome e número de telefone de um cliente, mais uma data e hora para o agendamento) salvando‐as em um modelo Appointment.

        Usamos o Mongoose neste aplicativo para armazenar nosso modelo no MongoDB.

        var AppointmentSchema = new mongoose.Schema({
          name:String,
          phoneNumber: String,
          notification : Number,
          timeZone : String,
          time : {type : Date, index : true}
        });
        
        Loading Code Sample...
              
              
              routes/appointments.js

              Create a new appointment

              routes/appointments.js

              Agora que criamos o Appointment, vamos ver como agendar um lembrete para ele.

              Agendar o trabalho de lembrete

              Agendar um trabalho para enviar lembretes

              A cada 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.

              Para fazer isso, usamos o node-cron.

              Configuramos na função iniciar o código do trabalho que gostaríamos de executar e o intervalo no qual executá‐lo. Em seguida, chamamos ele do ponto de entrada de execução do aplicativo como: scheduler.start()

              Loading Code Sample...
                    
                    
                    scheduler.js

                    Schedule a job to send reminders

                    scheduler.js

                    Esta função start usa um notificationsWorker, em seguida, veremos como funciona.

                    Execute o trabalho!

                    Criar uma função de trabalhador para executar o trabalho

                    Para realmente executar nossa lógica de trabalho recorrente, criamos uma função de trabalhador que usa um Método de modelo estático para consultar o banco de dados para agendamentos futuros e enviar lembretes conforme necessário.

                    Loading Code Sample...
                          
                          
                          workers/notificationsWorker.js

                          Create a worker function to run the job

                          workers/notificationsWorker.js

                          Em seguida, vamos ver como o trabalho Appointment funciona em detalhes.

                          Encontrar agendamentos que precisam de lembretes

                          Encontrar agendamentos que precisam de lembretes

                          Nosso trabalho recorrente usa um método de modelo estático do modelo Appointment para consultar o banco de dados para agendamentos que chegam no minuto atual e enviar mensagens de lembrete usando um cliente Twilio REST que havíamos inicializado anteriormente com nossas credenciais de conta da Twilio.

                          Devido ao fato de que os agendamentos são definidos em diferentes fusos horários, usamos a biblioteca Moment.js para consultar adequadamente todos os próximos agendamentos considerando seu fuso horário.

                          Loading Code Sample...
                                
                                
                                models/appointment.js

                                Encontrar agendamentos que precisam de lembretes

                                models/appointment.js

                                Tudo o que resta a fazer é enviar o SMS real. Veremos isso a seguir.

                                Enviar mensagens de lembrete com a API da Twilio

                                Enviar mensagens de lembrete com a API da Twilio

                                Este código é chamado para cada agendamento que estiver chegando e que exija que um lembrete seja enviado. Fornecemos um objeto de configuração com um campo to, que é o número de telefone do cliente, um campo from, que é um número em nossa conta e um campo body, que contém o texto da mensagem. Em seguida, vamos passá‐lo para o método sendMessage juntamente com um retorno de chamada para registrar erros e sucessos.

                                Loading Code Sample...
                                      
                                      
                                      models/appointment.js

                                      Enviar mensagens de lembrete com a API da Twilio

                                      models/appointment.js

                                      É isso! Nosso aplicativo está pronto para enviar lembretes para os próximos agendamentos.

                                      Para onde ir em seguida?

                                      Para onde ir em seguida?

                                      Esperamos que você tenha achado este exemplo de aplicativo útil. Se você for um desenvolvedor do Node.js/Express que trabalha com a Twilio, talvez queira conferir outros tutoriais:

                                      Automação do fluxo de trabalho

                                      Crie um fluxo de trabalho de SMS automatizado pronto para escalar para uma empresa de aluguel de férias.

                                      Chamadas do navegador

                                      Faça chamadas de navegador para telefone e de navegador para navegador com facilidade.

                                      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!

                                      Mario Celi Kevin Segovia Daniel Erazo
                                      Classifique esta página:

                                      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.

                                      Loading Code Sample...
                                            
                                            
                                            

                                            Obrigado pelo seu feedback!

                                            Selecione o(s) motivo(s) para seu feedback. As informações adicionais que você fornece nos ajudam a melhorar nossa documentação:

                                            Enviando seu feedback...
                                            🎉 Obrigado pelo seu feedback!
                                            Algo deu errado. Tente novamente.

                                            Obrigado pelo seu feedback!

                                            thanks-feedback-gif