Using Twilio To Text Myself After Long Running Jobs
By Rich
September 11, 2019
Update: I’ve written a small package containing (1) the function below, and (2) another function that configures and saves your twilio credentials. You can view the package here on Github, and install it via:
devtools::install_github("richpauloo/textme")
First and foremost, tremendous credit is due to
Sean Kross for the awesome
twilio R
package.
I was running a pretty long geocoding job, and I ended up throwing a
beepr::beep()
into the console just so I would get a notification when the job completed.
But the beep alerts me over the computer, so I was tied to it… darn.
Then I thought about how nice it would be to go on a walk outside, get some lunch, grab coffee with a colleague, or even go to the gym, but be notified while I’m away from the computer.
If only I could get a text message when the job was done. That would be cool.
So while my job was running (it still is)… I wrote this little script that I can stick in my .RProfile
that loads a function textme()
. The function has one purpose: text me at my phone number when my job is done running. Beauty.
Here’s the function
You’ll need to sign up for a free Twilio account.
# the following is no more than Sean Kross' example wrapped in a function
textme <- function(){
# First you need to set up your accound SID and token as environmental variables
Sys.setenv(TWILIO_SID = "SID_goes_here")
Sys.setenv(TWILIO_TOKEN = "secret_key_goes_here")
# Then we're just going to store the numbers in some variables
my_phone_number <- "your_phone_number_here"
twilios_phone_number <- "your_twilio_phone_number_here"
# Now we can send away!
twilio::tw_send_message(from = twilios_phone_number,
to = my_phone_number,
body = "👋 Rejoice! The dark deed you have requested has been done. 🎉")
}
Edit your .Rprofile
, paste the function above, and save.
if(!file.exists("~/.Rprofile")) # only create if not already there
file.create("~/.Rprofile") # (don't overwrite it)
file.edit("~/.Rprofile")
Now if start a fresh RStudio session, all you need to do is add textme()
to the end of a long-running process, and you’ll get a text!
Since my job is STILL running, I’m going to go for a walk and breathe some fresh air – but not before asking my computer to alert me once it’s done working.
- Posted on:
- September 11, 2019
- Length:
- 2 minute read, 372 words
- See Also: