В телеграм знакомимся с 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 Борис Демешев