DEV Community

Eileen
Eileen

Posted on

Text Yourself the NASA Picture of the Day with Standard Library and Node.js

The APoD for 10/16/2018: Jupiter in Ultraviolet from HubbleMe

Me: The sky is not the limit ☁️
Stranger: Pics or I don't believe you 🙄

Based on the above conversation, I'm going to show you how to get NASA's highly coveted Astronomy Picture of the Day (APoD) with Standard Library 🌑 ⭐️ 

If you're not familiar with Standard Library, we're a serverless platform that enables everyone (yes, everyone! Calling all PMs, designers, marketing teams, sales people, oh and engineers… 🙋) to build, ship, and integrate scalable APIs in a matter of seconds. With the help of our online text editor, Code.xyz, you can do all of this right from your browser.

Requirements

Standard Library account (free)
NASA API key (free)

Standard Library provides a plethora of API templates that are readily usable. In order to retrieve the APoD API template, go to Code.xyz and search for astronomy-picture-of-the-day by @eileenzhong 💁

APoD template

Name your API:
Name your API

One last step before sending the APoD to your phone!

You'll need to properly configure the env.json file. You'll notice that there are two sets of variables; however, we will be deploying our code to the dev environment, so we will only need to provide the dev variables.
First, insert your Standard Library library token (STDLIB_LIBRARY_TOKEN):

Right click to access this context menu

Then, insert your NASA API key. When finished, your env.json file should look like this:

Completed env.json

That's all the setup you have to do! 

To run the program, click "Debug" to bring the parameter input area into view. Enter your phone number, including the country code:

Don't forget the country code!

When you click "Run", you'll receive NASA's astronomy picture of the day! 🚀

That's not even the coolest part. 

We don't want to click "Run" every single day to get this text delivered to our phone. Thankfully, Standard Library has a task scheduler where you can customize a schedule to automagically invoke your newly created API. 
In Code.xyz, click the "Tasks" tab. You can then enter a phone number and customize a schedule to your liking:

Create a scheduled task for your API

Suggestion: schedule the task to execute once a day since APoD is an acronym for astronomy picture of the day, and hence, the picture won't change throughout the day.

When you're happy with the settings, click the blue "Schedule Task" button to schedule your API.
That's it! If you know one ☝️, two ✌️, or five 🖐 other people who would appreciate a daily astronomy picture, you can schedule a different task (one for each phone number) for all of them. 


Bonus section

If you've made it this far, you deserve a reward 🌈 Now, don't get too excited (actually - do get excited 🙃). With just 2 more lines of code, you can send your friend a random quote along with the APoD!

APoD and a random Paul Jacques Grillo quote

We'll be using WordPress's API to pull a randomized quote: http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1

Don't worry about all the RegEx (regular expressions) sitting on line 12. The WordPress API just returns some HTML tags that won't play nicely in an MMS 📱

Alternatively, you can just replace the value of the quote variable with any chunk of text you'd like to send your friend: const quote = "Hi friend."

Questions, comments, ideas? Feel free to email me at eileen@stdlib.com! I'd love to hear about your next project with Standard Library and Code.xyz.


Eileen is a software engineer at Standard Library.

Top comments (4)

Collapse
 
theqadiva profile image
Theqadiva • Edited

This was fun and fairly simple!! Great instructions! I set it up and now I'm waiting to see if I get my text today!! Thanks!!

UPDATE: It's working beautifully!! I've gotten a text everyday and the pics are amazing!!

Collapse
 
ben profile image
Ben Halpern

Cool!

Collapse
 
wolfhoundjesse profile image
Jesse M. Holmes

This is awesome!

Collapse
 
wolfhoundjesse profile image
Jesse M. Holmes

I logged in to shut this down today because I didn't want to hog someone else's service when I can just browse the photo on NASA's app. Trying to be sensible, you know.

As it turns out, I still haven't used my first full dollar for this little project, and, in fact, there are approximately 81,500 requests left on that account. At one per day, I'll be getting this photo at 6 a.m. for the next 223 years. What a bargain!