The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
This package is an R wrapper around the Telegram Bot API.
It allows to send messages (text, Markdown, images, files) from R to your smartphone.
More infos on telegram’s bot api can be found here and here.
For the stable version:
install.packages('telegram')
For the development one:
::install_github('lbraglia/telegram') devtools
First you have to talk to the botfather to create a new bot; answer few questions regarding bot’s name and you’re ready to go.
After you’ve done, the botfather returns a token (which has to be
kept secret) that lets you handle your bot; we need this token when
creating the bot object on the R side. Following Hadley’s
API guidelines it’s unsafe to type the token just in the R script.
It’s better to use enviroment variables set in .Renviron
file.
So let’s say you have named your bot RBot
(it’s the
first question you’ve answered to the botfather); then put the following
line with your token in your .Renviron
:
R_TELEGRAM_BOT_RBot=123123:asdasdasd
If you follow the suggested R_TELEGRAM_BOT_
prefix
convention you’ll be able to use the bot_token
function
(otherwise you’ll have to get these variable from
Sys.getenv
).
After you’ve finished these steps restart R in order to have working environment variables.
Now you should be able to obtain a connection to your bot with these commands:
library(telegram)
## Create the bot object
<- TGBot$new(token = bot_token('RBot'))
bot
## Now check bot connection it should print some of your bot's data
$getMe()
bot
## Now, on the phone, find and say something to your bot to start a chat
## (and obtain a chat id).
## ...
## Here, check what you have inserted
$getUpdates()
bot
## You're interested in the message.chat.id variable: in order to set a
## default chat_id for the following commands (to ease typing)
$set_default_chat_id(123456789) bot
After a bit using the package, you’ll probably want to set the
chat_id
to your user id (or more generally, have something
like an addressbook to store users’ ids). If you put this in your
.Renviron
:
R_TELEGRAM_USER_me=123456789
you’ll be able to use the user_id
function, eg like
this:
$set_default_chat_id(user_id('me')) bot
Once you’ve followed the previous section, run the following commands and look at your phone.
## Send some messages..
$sendMessage('This is text')
bot## Markdown support for messages
<- "*bold* _italic_ [r-project](http://r-project.org) "
md1 <- " try `x <- rnorm(100)` at the console ..."
md2 ## below left spaces just for github displaying (not needed in the .R src)
<- "
md3 you can have
```
x <- runif(100)
mean(x)
```
too
"
$sendMessage(md1, parse_mode = 'markdown')
bot$sendMessage(md2, parse_mode = 'markdown')
bot$sendMessage(md3, parse_mode = 'markdown')
bot
## Send a image/photo
png('test.png')
plot(rnorm(100))
dev.off()
$sendPhoto('test.png', caption = 'This is my awesome graph')
bot
## Send a document (can be any file)
help(TGBot, help_type = 'pdf')
$sendDocument('TGBot.pdf')
bot
## Forward a message
$forwardMessage(from_chat_id = 123456,
botchat_id = 123456,
message_id = 35)
## Send a location
$sendLocation(44.699, 10.6297)
bot
## Send a sticker
$sendSticker(system.file('r_logo.webp', package = 'telegram'))
bot
## Send a video
library(animation)
saveVideo({
set.seed(1)
<- 10
nmax ani.options(interval = 0.4, nmax = nmax)
<- c()
x for (i in 1:nmax){
<- c(x, rnorm(1))
x plot(cumsum(x), lty = 2, xlim = c(1, nmax), ylim = c(-5, 5))
abline(h = 0, col = 'red')
}video.name = 'animation.mp4')
}, $sendVideo('animation.mp4')
bot
## Send mp3 audio files
$sendAudio(system.file('audio_test.mp3', package = 'telegram'),
botperformer = 'espeak (http://espeak.sf.net)')
## Send voice (opus encoded .ogg files)
$sendVoice(system.file('voice_test.ogg', package = 'telegram'))
bot
## getUserProfilePhotos
$getUserProfilePhotos(user_id('me')) # <- alternatively, message.from.id variable in getUpdates
bot$getUserProfilePhotos(user_id('me'), destfile = 'me.png')
bot
# getFile
$getFile('asdasdasdqweqweqwe-UdYAAgI', # <- file_id from getUserProfilePhotos
bot'me_small.png')
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.