ProHoster > Blog > Pulega > Matou te tusia se pusa telegram i le gagana R (vaega 1): Fausia se bot ma lafo feʻau i le telegram e faʻaaoga ai
Matou te tusia se pusa telegram i le gagana R (vaega 1): Fausia se bot ma lafo feʻau i le telegram e faʻaaoga ai
O le Telegram audience o loʻo faʻatupulaia faʻateleina i aso uma, e faʻafaigofieina e le faʻaogaina o le avefeau, o le i ai o auala, talatalanoaga, ma o le mea moni o le mafai ona fatuina bots.
E mafai ona fa'aogaina bots mo fa'amoemoega 'ese'ese, mai le otometi feso'ota'iga ma au tagata fa'atau i le puleaina o au lava galuega.
O le mea moni, e mafai ona e faʻaogaina le telegram e faʻatino ai soʻo se gaioiga e ala i se bot: auina atu pe talosagaina faʻamatalaga, faʻatautaia galuega i luga o le 'auʻaunaga, aoina faʻamatalaga i totonu o faʻamaumauga, lafo imeli, ma isi.
Ou te fuafua e tusi se faasologa o tala i le auala e galue ai telegram bot API, ma tusi bots e fetaui ma ou manaʻoga.
I totonu o lenei tusiga muamua o le a tatou mafaufau pe faʻapefea ona fatuina se telegram bot ma faʻaaogaina e lafo ai faʻamatalaga i le telegram.
O le iʻuga, o le a matou maua se bot e siaki ai le tulaga o le faʻataunuʻuina mulimuli o galuega uma i le Windows Task Scheduler, ma auina atu ia oe faʻamatalaga pe a le manuia se tasi.
Ae o le faʻamoemoega o lenei faʻasologa o tala e le o le aʻoaʻoina oe pe faʻapefea ona tusi se bot mo se galuega faʻapitoa, vaapiapi, ae ia faʻafeiloaʻi masani oe i le syntax o le afifi. telegram.bot, ma faʻataʻitaʻiga faʻailoga e mafai ona e tusia ai bots e foia ai ou lava faʻafitauli.
Mataupu
Afai e te fiafia i suʻesuʻega faʻamatalaga, atonu e te fiafia i laʻu telefoni и YouTube alavai. O le tele o mea o lo'o tu'uina atu i le gagana R.
Muamua, e tatau ona tatou faia se bot. E faia lenei mea i le faʻaaogaina o se bot faapitoa BotFoa, alu i le fesoʻotaʻiga ma tusi i le bot /start.
A maeʻa ona e mauaina se feʻau ma se lisi o faʻatonuga:
Feau mai BotFather
I can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual (https://core.telegram.org/bots).
You can control me by sending these commands:
/newbot - create a new bot
/mybots - edit your bots [beta]
Edit Bots
/setname - change a bot's name
/setdescription - change bot description
/setabouttext - change bot about info
/setuserpic - change bot profile photo
/setcommands - change the list of commands
/deletebot - delete a bot
Bot Settings
/token - generate authorization token
/revoke - revoke bot access token
/setinline - toggle inline mode (https://core.telegram.org/bots/inline)
/setinlinegeo - toggle inline location requests (https://core.telegram.org/bots/inline#location-based-results)
/setinlinefeedback - change inline feedback (https://core.telegram.org/bots/inline#collecting-feedback) settings
/setjoingroups - can your bot be added to groups?
/setprivacy - toggle privacy mode (https://core.telegram.org/bots#privacy-mode) in groups
Games
/mygames - edit your games (https://core.telegram.org/bots/games) [beta]
/newgame - create a new game (https://core.telegram.org/bots/games)
/listgames - get a list of your games
/editgame - edit a game
/deletegame - delete an existing game
Ina ia faia se bot fou, lafo le poloaiga /newbot.
BotFather o le a fai atu ia te oe e ulufale i le igoa ole bot ma saini.
BotFather, [25.07.20 09:39]
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
Alexey Seleznev, [25.07.20 09:40]
My Test Bot
BotFather, [25.07.20 09:40]
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
Alexey Seleznev, [25.07.20 09:40]
@my_test_bot
E mafai ona e ulufale i so'o se igoa, ae tatau ona fa'ai'u le saini bot.
Afai na e faia mea uma sa'o, o le ae mauaina le savali lenei:
Done! Congratulations on your new bot. You will find it at t.me/my_test_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
123456789:abcdefghijklmnopqrstuvwxyz
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
O le isi mea e te manaʻomia le mauaina o le API faʻailoga, i laʻu faʻataʻitaʻiga 123456789:abcdefghijklmnopqrstuvwxyz.
I lenei laasaga, ua maeʻa le galuega sauniuni mo le fatuina o le bot.
Faʻapipiʻiina o se afifi mo le galue ma se telegram bot i R
Ou te manatu ua uma ona e maua le gagana R ma le siosiomaga atinae RStudio ua faʻapipiʻiina. Afai e le o le tulaga lea, ona mafai lea ona e vaʻai i lenei mea vitio lesona i le auala e faʻapipiʻi ai.
Ina ia galulue ma le Telegram Bot API o le a matou faʻaogaina le R package telegram.bot.
O le faʻapipiʻiina o afifi i le R e faʻaaogaina le galuega install.packages(), ina ia faʻapipiʻi le afifi matou te manaʻomia, faʻaaoga le poloaiga install.packages("telegram.bot").
E mafai ona e aʻoaʻo atili e uiga i le faʻapipiʻiina o afifi eseese mai lenei vitio.
A maeʻa ona faʻapipiʻi le afifi, e tatau ona e faʻafesoʻotaʻi:
library(telegram.bot)
Auina atu fe'au mai R i Telegram
O le bot na e faia e mafai ona maua i Telegram e faʻaaoga ai le saini na faʻamaonia i le taimi o le foafoaga, i loʻu tulaga o le @my_test_bot.
Auina atu i le pusa soʻo se feʻau, pei o le "Hey bot." I le taimi nei, matou te manaʻomia lenei mea ina ia maua ai le id o lau talatalanoaga ma le bot.
O lea matou te tusia le code lea i le R.
library(telegram.bot)
# создаём экземпляр бота
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")
# Запрашиваем информацию о боте
print(bot$getMe())
# Получаем обновления бота, т.е. список отправленных ему сообщений
updates <- bot$getUpdates()
# Запрашиваем идентификатор чата
# Примечание: перед запросом обновлений вы должны отправить боту сообщение
chat_id <- updates[[1L]]$from_chat_id()
Muamua, matou te faia se faʻataʻitaʻiga o la matou bot ma le galuega Bot(), o le faailoga na maua muamua e tatau ona pasi i totonu o se finauga.
E le o manatu e sili ona lelei le teuina o le faailoga i le code, o lea e mafai ai ona e teuina i totonu o se siosiomaga fesuiaiga ma faitau mai ai. E ala i le faaletonu ile afifi telegram.bot Lagolago mo suiga o le siosiomaga o igoa nei ua faʻatinoina: R_TELEGRAM_BOT_ИМЯ_ВАШЕГО_БОТА. Nai lo lena ИМЯ_ВАШЕГО_БОТА sui le igoa na e faʻamaonia pe a fatuina, i loʻu tulaga o le a suia R_TELEGRAM_BOT_My Test Bot.
E tele auala e fatuina ai se fesuiaiga o le siʻosiʻomaga; O le a ou taʻu atu ia te oe e uiga i le sili ona lautele ma le faʻasalalauga. Fausia i lau lisi o fale (e mafai ona e mauaina e faʻaaoga ai le poloaiga path.expand("~")) faila faila ma le igoa .Renviron. E mafai foi ona e faia lenei mea e faʻaaoga ai le poloaiga file.edit(path.expand(file.path("~", ".Renviron"))).
O le isi, e mafai ona e faʻaogaina le faʻailoga faʻasaoina i le fesuiaiga o le siosiomaga e faʻaaoga ai le galuega bot_token(), i.e. faapei o lea:
bot <- Bot(token = bot_token("My Test Bot"))
Metotia getUpdates()fa'atagaina tatou e maua fa'afouga bot, i.e. savali na auina atu ia te ia. Metotia from_chat_id(), e mafai ai ona e mauaina le ID o le talatalanoaga na auina mai ai le feʻau. Matou te manaʻomia lenei ID e lafo ai feʻau mai le bot.
I le faaopoopo atu i le chat id mai le mea na maua e le metotia getUpdates() e te maua foi nisi faamatalaga aoga. Mo se faʻataʻitaʻiga, faʻamatalaga e uiga i le tagata faʻaoga na lafoina le feʻau.
O lea la, i lenei laʻasaga ua uma ona matou maua mea uma matou te manaʻomia e lafo ai se feʻau mai se bot i Telegram. Sei o tatou faaaogaina le auala sendMessage(), lea e te manaʻomia e pasi ai le ID talatalanoaga, feʻau tusitusia, ma le ituaiga faʻailoga tusi. Ole ituaiga faʻailoga e mafai ona avea ma Markdown poʻo HTML ma faʻatulagaina e le finauga parse_mode.
# Отправка сообщения
bot$sendMessage(chat_id,
text = "Привет, *жирный текст* _курсив_",
parse_mode = "Markdown"
)
Fa'avae fa'avasega fa'ailoga:
O lo'o fa'ailoga mata'itusi mata'utia i le *:
faataitaiga: *жирный шритф*
i'uga: mata'itusi mata'utia
O lo'o fa'ailoa mai i lalo fa'ailoga:
faataitaiga: _курсив_
i'uga: faatusilima
O le monospace font, lea e masani ona faʻaaogaina e faʻamaonia ai le faʻailoga o le polokalame, o loʻo faʻamaonia i le faʻaogaina o apostrophe - `:
faataitaiga: `monospace font`
i'uga: моноширинный шрифт
Fa'avae o le fa'avasegaina o fa'ailoga HTML:
I le HTML, e te afifiina le vaega o le tusitusiga e manaʻomia ona faʻamaonia i pine, faʻataʻitaʻiga <тег>текст</тег>.
<tag> - fa'ailoga amata
- fa'ailoga tapuni
HTML fa'ailoga fa'ailoga
<b> - mata'itusi mata'utia
faataitaiga: <b>жирный шрифт</b>
aʻafiaga mata'itusi mata'utia
<i> - faatusilima
faataitaiga: <i>курсив</i>
i'uga: faatusilima
— моноширинный шрифт
fa'ata'ita'iga: моноширинный шрифт
i'uga: моноширинный шрифт
I le faaopoopo atu i tusitusiga, e mafai ona e lafoina isi mea e faʻaaoga ai metotia faʻapitoa:
O na. mo se faʻataʻitaʻiga faʻaaogaina o le metotia sendPhoto() e mafai ona e lafoina se kalafi ua teuina o se ata na e faia e faʻaaoga ai le afifi ggplot2.
Siaki le Windows Task Scheduler ma le auina atu o faʻamatalaga e uiga i galuega ua faʻamutaina faʻafuaseʻi
Ina ia galue ma Windows Task Scheduler e tatau ona e faʻapipiʻi le afifi taskscheduleR, ma mo le faigofie o le galue ma faʻamaumauga, faʻapipiʻi le afifi dplyr.
# Установка пакетов
install.packages(c('taskscheduleR', 'dplyr'))
# Подключение пакетов
library(taskscheduleR)
library(dplyr)
Le isi, faʻaaogaina le galuega taskscheduler_ls() matou te talosagaina faʻamatalaga e uiga i galuega mai le matou faʻatulagaina. Fa'aaogaina o le galuega filter() mai le afifi dplyr Matou te aveese mai le lisi o galuega i latou na faʻamaeʻaina ma maua le tulaga mulimuli o le 0, ma i latou e leʻi faʻalauiloaina ma iai le tulaga o le 267011, galuega faʻaletonu, ma galuega o loʻo faʻagasolo nei.
I le mea faitino task Ua i ai nei a matou lisi o galuega na le manuia, matou te manaʻomia le lafoina o lenei lisi i Telegram.
Afai tatou te vaʻavaʻai atili i faʻatonuga taʻitasi, ona:
filter() - faʻamama le lisi o galuega e tusa ai ma tulaga o loʻo faʻamatalaina i luga
select() - tu'u na'o le tasi le fanua i le laulau ma le igoa o galuega
unique() - aveese igoa fa'alua
unlist() — liliu le koluma laulau ua filifilia i se vector
paste0() - faʻafesoʻotaʻi igoa o galuega i le laina e tasi, ma tuʻu se laina fafaga e avea o se vavae, i.e. n.
Pau lava le mea e totoe mo i matou o le auina atu lea o lenei faʻaiʻuga e ala i le telegram.
bot$sendMessage(chat_id,
text = task,
parse_mode = "Markdown"
)
O lea la, i le taimi nei o le bot code e pei o lenei:
Fa'atonuga ole bot code
# Подключение пакета
library(telegram.bot)
library(taskscheduleR)
library(dplyr)
# инициализируем бота
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")
# идентификатор чата
chat_id <- 123456789
# запрашиваем список задач
task <- taskscheduler_ls() %>%
filter(! `Last Result` %in% c("0", "267011") &
`Scheduled Task State` == "Enabled" &
Status != "Running") %>%
select(TaskName) %>%
unique() %>%
unlist() %>%
paste0(., collapse = "n")
# если есть проблемные задачи отправляем сообщение
if ( task != "" ) {
bot$sendMessage(chat_id,
text = task,
parse_mode = "Markdown"
)
}
A faʻaaoga le faʻataʻitaʻiga o loʻo i luga, sui lau faʻailoga bot ma lau ID talatalanoaga i totonu o le code.
E mafai ona e fa'aopoopo tulaga mo le fa'amamaina o galuega, mo se fa'ata'ita'iga, siaki na'o galuega na e faia, e le aofia ai faiga.
E mafai fo'i ona e tu'uina ni fa'atulagaga eseese i totonu o se faila fa'aopoopo, ma teu ai le chat id ma fa'ailoga i totonu. E mafai ona e faitau i le config, mo se faʻataʻitaʻiga, faʻaaoga le afifi configr.
Faataitaiga lenei config
[telegram_bot]
;настройки телеграм бота и чата, в который будут приходить уведомления
chat_id=12345678
bot_token=123456789:abcdefghijklmnopqrstuvwxyz"
O se faʻataʻitaʻiga o le faitauina o fesuiaiga mai se faʻaoga i le R
O le faʻagasologa o le faʻatulagaina o le faʻalauiloaina o tusitusiga i luga o se faʻasologa o loʻo faʻamatalaina atili auiliili i lenei tusiga. O iinei o le a ou faʻamatalaina ai laasaga e manaʻomia ona mulimulitaʻia mo lenei. Afai o nisi o laasaga e le o manino ia te oe, ona vaʻai lea i le tusiga lea na ou tuʻuina atu i ai se sootaga.
Se'i tatou fa'apea na tatou fa'asaoina le code bot i se faila check_bot.R. Ina ia fa'atulaga lenei faila e fa'agasolo pea, mulimuli i laasaga nei:
Tusi le ala i le faila o loʻo faʻapipiʻiina ai le R i le Path system variable; i Windows, o le ala o le a pei o lenei: C:Program FilesRR-4.0.2bin.
Fausia se faila pe'a fa'atino ile na'o le tasi le laina R CMD BATCH C:rscriptscheck_botcheck_bot.R. Sui C:rscriptscheck_botcheck_bot.R i le ala atoa i lau faila R.
Sosoo ai, fa'aaoga le Windows Task Scheduler e fa'atulaga ai se fa'asologa fa'alauiloa, mo se fa'ata'ita'iga, i afa itula uma.
iʻuga
I totonu o lenei tusiga, na matou mafaufauina pe faʻapefea ona fatuina se bot ma faʻaaogaina e lafo ai faʻamatalaga eseese i le telegram.
Na ou faʻamatalaina le galuega o le mataʻituina o le Windows Task Scheduler, ae e mafai ona e faʻaogaina mea o loʻo i totonu o lenei tusiga e lafo ai soʻo se faʻamatalaga, mai le tau o le tau i faʻatauga faʻatau i luga o fefaʻatauaiga, aua R faʻatagaina oe e faʻafesoʻotaʻi i se numera tele o punaoa faʻamaumauga.
I le isi tala, o le a tatou mafaufau pe faʻafefea ona faʻaopoopo poloaiga ma se piano i le bot ina ia le gata ina auina atu faʻamatalaga, ae faʻapea foʻi ona faia ni gaioiga sili atu ona faigata.