Cómo declarar tu amor como un programador ❤️

¡Hoy es el día de San Valentín! ?

¿Qué tan bueno sería si le enviara un mensaje romántico cada hora a su ser querido? Pero aun mejor ...

¿Qué tan maravilloso sería hacerlo automáticamente usando un script de Node.js? Después de todo, somos ... programadores, ¿verdad? ?

En este breve tutorial te mostraré cómo hacerlo.

PD Para los perezosos, aquí hay un tutorial en video:

Crear un trabajo CRON

Primero, necesitamos crear un trabajo CRON que ejecutará una función cada hora.

Para eso, node-croninstalemos el paquete en nuestra aplicación NodeJS:

npm install node-cron

A continuación, vamos a programar una función para que se ejecute cada hora:

const cron = require('node-cron'); cron.schedule('0 * * * *', () => { sendMessage(); }); 

Perfecto. sendMessage()Aún no tenemos la función, pero la crearemos más tarde.

Además, en caso de que no sepa cómo funciona la cadena CRON, aquí hay un sitio web increíble donde puede probarlo.

Básicamente '0 * * * *'significa:, Run every hour at 0 minutespor lo que se ejecutará en:, 00:00, 01:00, 02:00etc ... ¡Ya entiendes!

Conectarse a Twilio

Necesitamos una cuenta de Twilio, así que dirígete a Twilio.com y crea una. Debe verificar su dirección de correo electrónico y también verificar el número al que desea enviar el mensaje. (¿Tuve que "robar" el teléfono de mi esposa para verificar el número?)

Allí te harán un par de preguntas como: "¿Qué lenguaje de programación estás usando?" Puede elegir Node.js y luego terminará en la /consolepágina.

Aquí obtendrá el ACCOUNT SIDy AUTH TOKEN. Los necesitamos para llamar a la API de Twilio, por lo que los almacenaremos dentro de un config.jsarchivo.

Advertencia: no comparta el AUTH TOKEN . Esta es una clave secreta, así que la almacenaremos dentro de este archivo config.js "secreto".

Excelente.

Lo siguiente será crear un Número de prueba (puede encontrar el botón en la /consolepágina). Este número se utilizará para enviar los mensajes DESDE.

Ahora que tenemos todo en su lugar, ¡volvamos a nuestro código!

Necesitamos instalar el paquete Twilio: npm install twilioy necesitamos usar los datos que almacenamos dentro del ./config.jsarchivo.

Junto con ACCOUNT_SIDy AUTH_TOKENtambién podemos almacenar el PHONE_NRde nuestro ser querido, ya que lo usaremos para decirle a Twilio dónde enviar el mensaje A

Hagamos eso y también creemos la sendMessage()función, que ... ¿enviará un mensaje ?.

const config = require('./config'); const accountSid = config.ACCOUNT_SID; const authToken = config.AUTH_TOKEN; const client = require('twilio')(accountSid, authToken); function sendMessage() { client.messages .create({ body: 'Your Message here', from: '+19166191713', to: config.PHONE_NR }) .then(message => { console.log(message); }); } 

Puede ver que la client.messages.create()función requería tres cosas:

  1. El cuerpo / el mensaje
  2. El número FROM (este es el número de prueba creado arriba)
  3. El número TO (este es el número al que queremos enviar el mensaje)

Recibe los mensajes

Necesitamos una lista de 24 mensajes románticos, así que para eso creemos un messages.jsarchivo y coloquemos todos los mensajes dentro de una matriz.

module.exports = [ `If I could give you one thing in life, I'd give you the ability to see yourself through my eyes, only then would you realize how special you are to me.`, `If you were a movie, I'd watch you over and over again.`, `In a sea of people, my eyes always search for you.` ]; 

Solo agregué 3 mensajes arriba, pero puede completar la matriz hasta que llegue a 24 mensajes.

Combina todo

Ahora que tenemos los 3 componentes:

  • el trabajo CRON
  • la llamada de Twilio sendMessage ()
  • los mensajes

Podemos combinarlos en el código final:

const cron = require('node-cron'); const config = require('./config'); const accountSid = config.ACCOUNT_SID; const authToken = config.AUTH_TOKEN; const client = require('twilio')(accountSid, authToken); const messages = require('./messages'); const currentMessage = 0; function sendMessage() { client.messages .create({ body: messages[currentMessage], from: '+19166191713', to: config.PHONE_NR }) .then(message => { currentMessage++; console.log(message); }); } cron.schedule('0 * * * *', () => { console.log('Message sent!'); sendMessage(); }); 

Puede ver que agregué un currentMessagecontador que se incrementará cada vez que enviemos un mensaje, de esta manera vamos a recorrer todo el conjunto de mensajes.

¡Eso es! ?

¡Ahora puede ejecutar el script y enviará un mensaje romántico, cada hora, a su ser querido!

¡Feliz San Valentín! ?

Publicado originalmente en www.florin-pop.com