Buscar información meteorológica a diario es una tarea trivial. Como programadores, podemos facilitar esta tarea creando un servicio de notificación. Usaremos la API de SMS de Twilio para enviar SMS y Node.js para escribir el servicio que se ejecuta todos los días a una hora determinada.
Obtención de credenciales de Twilio: para usar las API de Twilio, debemos registrar nuestra aplicación y obtener las claves de API de la consola de Twilio. Necesitamos obtener ACCOUNT SID
, AUTH TOKEN
y TRIAL NUMBER
. Puede obtener todas estas credenciales desde aquí .
Guarde estas credenciales en .env
un archivo en el directorio raíz de su proyecto junto con su número de teléfono. Dado que es una mejor práctica de seguridad guardar cada credencial en un archivo separado.
ACC_SID = 'your-account-sid' AUTH_TOKEN = 'your-auth-token' TO = 'your-number-with-country-code' FROM = 'twilio-trial-number'
Envío de SMS: Para enviar SMS podemos utilizar la librería de Twilio para Node.js. Instale la biblioteca usando el siguiente comando:
npm install twilio
Ahora probemos nuestras credenciales enviando un mensaje. Agregue el siguiente código al index.js
archivo.
// Getting Data from .env file const accountSid = process.env.ACC_SID; const authToken = process.env.AUTH_TOKEN; const twilio = require("twilio"); const client = new twilio(accountSid, authToken); client.messages .create({ body: "Hello from GeeksForGeeks!", to: process.env.TO, from: process.env.FROM }) .then(message => console.log(message.sid));
Si todo va bien, recibirá un SMS de Twilio con el texto «¡Hola de GeeksForGeeks!».
Obtención de la información meteorológica: para obtener la información meteorológica más reciente, utilizaremos la API de Openweathermap , que está disponible gratuitamente.
Para usar el registro API en el sitio web y vaya al tablero para generar la clave API de la siguiente manera:
Usaremos la request
biblioteca de Node.js para obtener los datos de la API. Instale la dependencia usando el siguiente comando:
npm install request
Y luego agregue el siguiente fragmento de código al index.js
archivo.
// Import request library const request = require("request"); function getdata() { request( "http://api.openweathermap.org/data/2.5/weather?q=delhi&appid=<your-api-key>&units=metric", { json: true }, (err, res, body) => { if (err) { return console.log(err); } // Printing fetched data console.log(body); }); } // Calling function getData();
Ahora, cree una función para enviar datos de notificación y agregue el código para enviar SMS como se muestra a continuación:
// Send message function sendNotification(msg) { client.messages .create({ body: msg, to: process.env.TO, from: process.env.FROM }) .then(message => console.log(message.sid)); }
Ahora tenemos que crear un mensaje a partir de los datos recibidos de la API meteorológica. Reemplace la getData(
función ) con el siguiente código:
function getdata(){ request( "http://api.openweathermap.org/data/2.5/weather?q=delhi&appid=<your-api-key>&units=metric", { json: true }, (err, res, body) => { if (err) { return console.log(err); } // Create a message let msg = `\nToday's Weather : \n${body.weather[0].main}, ${body.main.temp}°C\nHumidity : ${body.main.humidity}% `; // Calling Send Message function sendNotification(msg); }); }
Ahora, para enviar el mensaje todos los días, debemos configurar un cronjob usando la node-cron
biblioteca.
npm install node-cron
Agregue el cronjob para llamar al método getData() todos los días a las 8:00 AM:
// Importing library const twilio = require("node-cron"); // Cronjob runs everyday at 8:00 AM cron.schedule("0 8 * * *", () => { // Calling getData method which // calls the send message method getData(); });
Si todo va bien, recibirá un SMS con la información meteorológica.
Producción:
Publicación traducida automáticamente
Artículo escrito por frikishaan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA