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

Menu

Expand
Calificar esta página:

Recordatorios de citas con PHP y Laravel

¡Ahoy! Ahora te recomendamos que crees tus recordatorios de citas SMS con la funcionalidad de programación de mensajes integrada de Twilio. Dirígete a la Documentación de recursos de mensajes para obtener más información sobre la programación de mensajes de SMS.

Esta aplicación web de Laravel 5 muestra cómo crear citas para los clientes en una fecha futura y enviar recordatorios para esas citas en un trabajo en segundo plano que se ejecuta cada pocos minutos.

En este tutorial, destacaremos los elementos clave del código que hacen que funcione esta aplicación móvil. Consulta el archivo README del proyecto en GitHub para conocer cómo ejecutar el código por tu cuenta.

Comprueba cómo Yelp utiliza SMS para confirmar las reservas de restaurantes para los comensales.

¡Empecemos! Haz clic en el botón que aparece a continuación para comenzar.

¡Empecemos!

Configurar la aplicación móvil para usar Twilio

Antes de que podamos usar la API de Twilio para enviar mensajes de texto de recordatorio, necesitamos configurar las credenciales de nuestra cuenta. Estos se pueden encontrar en la consola de Twilio. También necesitarás un número de teléfono compatible con SMS, puedes encontrar o comprar uno nuevo para usar aquí.

Configuramos estos valores con Dotenv, la biblioteca de configuración preferida para las aplicaciones de Laravel. Puedes encontrar más información sobre cómo configurar esta aplicación móvil en el archivo README del proyecto.

Loading Code Sample...
        
        
        .env.example

        Configure the application

        .env.example

        A continuación, conoceremos la forma en que creamos una Appointment nueva.

        Creemos algunas citas

        Crear una cita nueva

        Para enviar un recordatorio de cita, primero necesitamos crear una cita. En el controlador, tomamos la información enviada en un formulario (en particular el nombre y el número de teléfono del cliente, además una hora para la cita en el futuro) y la guardamos en un modelo de Appointment.

        Ten en cuenta que utilizamos la biblioteca de fecha Carbon para facilitarnos el análisis y la realización de operaciones sencillas con el tiempo.

        Loading Code Sample...
              
              
              app/Http/Controllers/AppointmentController.php

              Crear una cita nueva

              app/Http/Controllers/AppointmentController.php

              Ahora que hemos creado nuestra Appointment, veamos cómo programar un recordatorio para ello.

              Programar un trabajo para enviar recordatorios

              Programar un trabajo para enviar recordatorios

              Cada diez minutos, nos gustaría que nuestra aplicación móvil comprobara la base de datos de citas para ver si se avecina alguna cita que requiera el envío de recordatorios. Configuramos tanto el código de trabajo que nos gustaría ejecutar como el intervalo en el que ejecutarlo aquí.

              Loading Code Sample...
                    
                    
                    app/Console/Kernel.php

                    Schedule a job to send reminders

                    app/Console/Kernel.php

                    Con nuestro trabajo configurado, ahora estamos listos para escribir el código de comando de consola real que enviará nuestros recordatorios.

                    Crear un comando de consola para ejecutar el trabajo

                    Crear un comando de consola para ejecutar el trabajo

                    Para ejecutar nuestra lógica de trabajo recurrente, creamos un comando de la consola Artisan que consulta la base de datos para las próximas citas y envía recordatorios según sea necesario. Como ventaja adicional, definir nuestra lógica de trabajo de esta manera nos permite ejecutar el trabajo de recordatorio siempre que lo queramos desde la línea de comandos.

                    Loading Code Sample...
                          
                          
                          app/Console/Commands/SendReminders.php

                          Create a console command to run the job

                          app/Console/Commands/SendReminders.php

                          Profundicemos más en la clase ApplicationReminder

                          Buscar citas que necesiten recordatorios

                          Buscar citas que necesiten recordatorios

                          Nuestro trabajo recurrente utiliza una instancia de la clase AppointmentReminder para consultar en la base de datos las citas que se avecinan en los próximos diez minutos y enviar mensajes de recordatorio.

                          En el constructor, ejecutamos la consulta de la base de datos mediante un alcance personalizado en el modelo Appointment. Esto nos debe dar una lista de todas las citas con una fecha y hora dentro de los próximos diez minutos.

                          Loading Code Sample...
                                
                                
                                app/AppointmentReminders/AppointmentReminder.php

                                Buscar citas que necesiten recordatorios

                                app/AppointmentReminders/AppointmentReminder.php

                                Ahora configuremos el cliente de REST de Twilio para enviar algunos mensajes de recordatorio en SMS.

                                Primero, necesitamos un cliente de API de Twilio

                                Configurar un cliente de API de Twilio

                                También en el constructor de AppointmentReminder, creamos un cliente de REST de Twilio para enviar recordatorios mediante SMS. Lo inicializamos con las credenciales de la cuenta de Twilio que configuramos antes.

                                Loading Code Sample...
                                      
                                      
                                      app/AppointmentReminders/AppointmentReminder.php

                                      Configurar un cliente de API de Twilio

                                      app/AppointmentReminders/AppointmentReminder.php

                                      Con el cliente y los recordatorios a mano. Solo queda enviar un SMS para ellos.

                                      Enviar mensajes de recordatorio con la API de Twilio

                                      Enviar mensajes de recordatorio con la API de Twilio

                                      Estas dos funciones privadas se llaman para cada cita que surja y que requiera el envío de un recordatorio. La primera otorga formato al texto del mensaje que se va a enviar. La segunda utiliza el cliente de la API REST de Twilio para enviar un mensaje de texto.

                                      Proporcionamos un parámetro to, que es el número de teléfono del cliente, un parámetro from, que es un número en nuestra cuenta, y un parámetro body, que contiene el texto del mensaje.

                                      Loading Code Sample...
                                            
                                            
                                            app/AppointmentReminders/AppointmentReminder.php

                                            Enviar mensajes de recordatorio con la API de Twilio

                                            app/AppointmentReminders/AppointmentReminder.php

                                            ¡Eso es todo! Nuestra aplicación de Laravel se ha configurado para enviar recordatorios de las próximas citas.

                                            ¿Dónde ir a continuación?

                                            ¿Dónde ir a continuación?

                                            Esperamos que esta aplicación móvil de muestra te haya resultado útil. Si eres un desarrollador de PHP que trabaja con Twilio, puedes consultar estos tutoriales:

                                            Clic para llamar

                                            Coloca un botón en tu página web que conecte a los visitantes con el servicio de asistencia en directo o con el personal de ventas por teléfono.

                                            Autenticación de dos factores

                                            Mejora la seguridad de la funcionalidad de inicio de sesión integrada de Laravel al añadir autenticación de dos factores por mensajes de texto.

                                            ¿Te ayudó esto?

                                            Gracias por consultar este tutorial. Si tienes algún comentario que compartir con nosotros, comunícate con nosotros en Twitter... nos encantaría saber lo que piensas y conocer lo que estás creando.

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

                                            ¿Necesitas ayuda?

                                            Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.

                                            Loading Code Sample...
                                                  
                                                  
                                                  

                                                  Gracias por tus comentarios.

                                                  Selecciona los motivos de tus comentarios. La información adicional que nos brindas nos ayuda a mejorar nuestra documentación:

                                                  Enviando tus comentarios…
                                                  🎉 Gracias por tus comentarios.
                                                  Se produjo un error. Inténtalo de nuevo.

                                                  Gracias por tus comentarios.

                                                  thanks-feedback-gif