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.
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.
A continuación, conoceremos la forma en que creamos una Appointment
nueva.
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.
Ahora que hemos creado nuestra Appointment
, veamos cómo programar un recordatorio para ello.
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í.
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
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.
Profundicemos más en la clase ApplicationReminder
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.
Ahora configuremos el cliente de REST de Twilio para enviar algunos mensajes de recordatorio en SMS.
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.
Con el cliente y los recordatorios a mano. Solo queda enviar un SMS para ellos.
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.
¡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?
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:
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.
¿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.