четверг, 10 марта 2016 г.

Бесплатное SMS-оповещение об окончании расчётов в R


Иногда процесс расчёта в популярной среде для вычислений R затягивается и ты привычно уходишь пить чай. Но я подумал, что неплохо было бы запилить SMS-уведомления об окончании и сделать это бесплатно.

Многие, кто интересовался вопросом, знают, что есть очень удобный популярный сервис TWILIO, который предоставляет простой API для как отправки сообщений, так и голосовых вызовов. Самое приятное для нас то, что триал версия позволяет посылать смс на зарегистрированный в системе номер бесплатно. Правда в начале сообщения дописывается "Sent from your Twilio trial account", но нас это не очень волнует.

Чтобы начать работать с TWILIO надо три вещи:
  1. зарегистрироваться и получить пару ключей ACCOUNT_SID и AUTH_TOKEN
  2. затем нужно добавить свой номер в качестве проверенного (подтверждение по смс)
  3. получить личный TWILIO-номер
После этого достаточно вот такой простой программы:

library(httr)
 
### Paste your code here
accuracy <- 1
### 
 
# TWILIO keys 
TWILIO_ACCOUNT_SID = '***'
TWILIO_AUTH_TOKEN = '***' 
 
# Phone numbers 
# My twilio number  
my_number = '+***' 
# My local number
dst_number = '+***' 
 
message = paste('Test was finished with accuracy: ', accuracy)
 
path <- paste("https://api.twilio.com/2010-04-01/Accounts/",
               TWILIO_ACCOUNT_SID,"/Messages.json", sep="") 
 
dats <- POST(path, body = list(From=my_number,To=dst_number,Body=message ), 
             authenticate(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN) ) 
 
if(dats$status_code == 201) {
  print( paste("Message sent at", Sys.time()) )
} else {
  print( paste("Falied to send message at", Sys.time()) )
 

Так просто и элегантно можно решить проблему оповещения. Теперь, когда мой алгоритм досчитывает, я сразу получаю сообщение с результатом. В планах сделать отсылку на telegram, думаю это будет не намного сложнее.

Комментариев нет:

Отправить комментарий