В телеграм знакомимся с BotFather.
Пишем ему \start, далее \newbot.
Выбираем красивое и формальное имя бота. Можно одно и то же. Пусть будет my_bot.
BotFather сообщит API-token. Это строка вида 12345678:sdsfsdfsdfjklsdjlfldskfls.
Создаём (или редактируем) файл .Renviron. На линуксе/макос он лежит в домашней папке ~, например, /users/boris.
Помещаем в файл .Renviron строку:
R_TELEGRAM_BOT_my_bot=12345678:sdsfsdfsdfjklsdjlfldskfls
Перзапускаем R.
library(telegram)
bot <- TGBot$new(token = bot_token('my_bot'))
bot$getMe()
Находим my_bot в телеграме и пишем ему “Привет” или что-нибудь ещё.
Узнаём chat.id:
new_messages <- bot$getUpdates()
new_messages$message
Получаем номер а-ля 123456789.
Настраиваем chat.id по умолчанию:
bot$set_default_chat_id(123456789)
Ура! Можно писать сообщения и слать файлы :)
bot$sendMessage('Привет от бота :)')
bot$sendDocument('map.png')
А ещё можно настроить скрипт R так, чтобы пересылались сообщения об ошибках:
options(error = function() {
bot$sendMessage(geterrmessage())
if (!interactive()) {
stop(geterrmessage())
}
})
Добавка про interactive() нужна, чтобы при запуске из командной строки ошибка выполняла прерывания скрипта.
Ссылки:
Про .Renviron файл в книжке Efficient R programming
April 27th, 2017 by Борис Демешев