Looking for weather information daily is a trivial task. As programmers, we can make this task easier by creating a notification service. We will use the Twilio SMS API for sending SMS and Node.js for writing the service which runs every day at a particular time.
Getting Twilio Credentials: To use Twilio APIs, we need to register our app and get the API keys from Twilio’s console. We need to get
AUTH TOKEN, and
TRIAL NUMBER. You can get all these credentials from here.
Save these credentials to
.env file in your project’s root directory along with your phone number. Since its a security best practice to save every credential in a separate file.
Sending SMS: In order to send SMS, we can use Twilio’s library for Node.js. Install the library using the following command:
npm install twilio
Now let’s test our credentials by sending a message. Add the following code to the
If all goes good then you will receive an SMS from Twilio with the text “Hello from GeeksForGeeks!”.
Getting the weather information: To get the latest weather information, we will use Openweathermap API which is freely available.
To use the API signup on the website and go to the dashboard to generate the API key as follows:
We will use the Node.js’s
request library to fetch the data from the API. Install the dependency using the following command:
npm install request
And then add the following code snippet to the
Now, create a function to send notification data and add the code for sending SMS like below:
Now we have to create a message from the data received from the weather API. Replace the
getData() function with the following code:
Now, to send the message every day, we have to set up a cronjob using the
npm install node-cron
Add the cronjob to call getData() method every day at 8:00 AM:
If everything goes fine then you will receive an SMS displaying the weather information.
- Nodejs | Automatic restart NodeJs server with nodemon
- Sending bulk SMS in Node.js using Twilio
- Node.js | Dark Sky API for Weather Forecasts
- Create a Weather app using Flask | Python
- Bulma | Notification
- How to count number of notification on an icon?
- How to play a notification sound on websites?
- How to load notification alert on top right corner without click of button in bootstrap ?
- How to get history changes notification via history.pushState() method ?
- How to detect a mobile device using PHP?
- Mobile Search Engine Optimization (SEO)
- How to disable zoom on a mobile web page using CSS?
- How to detect a mobile device in jQuery?
- Nodejs | DNS
- Web-Socket in NodeJS
- Nodejs | DNS | setServers()
- Nodejs | Jimp
- How to target desktop, tablet and mobile using Media Query ?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.