ProHoster > Blog > Tsamaiso > Ho ngola bot ea thelekramo ho R (karolo ea 1): Ho theha bot le ho e sebelisa ho romella melaetsa ka thelekramo
Ho ngola bot ea thelekramo ho R (karolo ea 1): Ho theha bot le ho e sebelisa ho romella melaetsa ka thelekramo
Bamameli ba Telegram ba ntse ba hōla ka mokhoa o tsotehang letsatsi le leng le le leng, sena se thusoa ke boiketlo ba lenģosa, boteng ba liteishene, lipuisano, 'me ehlile bokhoni ba ho theha bots.
Bots e ka sebelisoa ka merero e fapaneng ka ho felletseng, ho tloha ho othomathiki oa puisano le bareki ba hau ho isa mesebetsing ea hau.
Ha e le hantle, o ka sebelisa thelekramo ho etsa ts'ebetso efe kapa efe ka bot: ho romella kapa ho kopa data, ho tsamaisa mesebetsi ho seva, ho bokella tlhahisoleseling ho database, ho romella mangolo-tsoibila, joalo-joalo.
Ke rerile ho ngola letoto la lihlooho tse mabapi le mokhoa oa ho sebetsa le telegram bot API, 'me u ngole bots ho lumellana le litlhoko tsa hau.
Sehloohong sena sa pele re tla fumana mokhoa oa ho theha bot ea thelekramo le ho e sebelisa ho romella litsebiso ka thelekramo.
Ka lebaka leo, re tla ba le bot e tla hlahloba boemo ba ts'ebetso ea ho qetela ea mesebetsi eohle ho Windows Task Scheduler, le ho u romella litsebiso haeba leha e le efe ea tsona e hlōlehile.
Empa sepheo sa letoto lena la lingoloa ha se ho u ruta mokhoa oa ho ngola bot bakeng sa mosebetsi o itseng, o moqotetsane, empa ke ho u tsebisa ka syntax ea sephutheloana. telegram.bot, le mehlala ea khoutu eo ka eona u ka ngolang bots ho rarolla mathata a hau.
Tse ka hare
Haeba u thahasella tlhahlobo ea data, u ka 'na ua thahasella ea ka thelekramo и mang youtube dikanale. Boholo ba litaba bo nehetsoe puong ea R.
Pele, re hloka ho theha bot. Sena se etsoa ho sebelisoa bot e khethehileng Ntate Ntate, ea ho kgokahanyo ebe u ngolla bot /start.
Ka mor'a moo o tla fumana molaetsa o nang le lethathamo la litaelo:
Molaetsa o tsoang ho 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
Ho theha bot e ncha, romella taelo /newbot.
BotFather e tla u kopa ho kenya lebitso la bot le ho kena.
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
O ka kenya lebitso lefe kapa lefe, empa ho kena ho tlameha ho fela ka bot.
Haeba u entse tsohle ka nepo, u tla fumana molaetsa o latelang:
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
Ka mor'a moo o tla hloka letšoao la API le amohetseng, mohlala oa ka ke 123456789:abcdefghijklmnopqrstuvwxyz.
Mothating ona, mosebetsi oa boitokisetso oa ho theha bot o phethetsoe.
Ho kenya sephutheloana sa ho sebetsa le bot ea thelekramo ho R
Ke nahana hore u se u ntse u e-na le puo ea R le tikoloho ea ntlafatso ea RStudio e kentsoeng. Haeba sena ha se joalo, joale u ka sheba sena thuto ea video ka mokhoa oa ho li kenya.
Ho sebetsa le Telegraph Bot API re tla sebelisa sephutheloana sa R telegram.bot.
Ho kenya liphutheloana ho R ho etsoa ka ts'ebetso install.packages(), kahoo ho kenya sephutheloana seo re se hlokang, sebelisa taelo install.packages("telegram.bot").
U ka ithuta ho eketsehileng ka ho kenya liphutheloana tse sa tšoaneng ho tloha video ena.
Kamora ho kenya sephutheloana, o hloka ho se hokela:
library(telegram.bot)
Ho romella melaetsa ho tloha ho R ho ea Telegram
Bot eo u e entseng e ka fumanoa ho Telegraph u sebelisa ho kena ho boletsoeng nakong ea pōpo, molemong oa ka ho joalo @my_test_bot.
Romella bot molaetsa ofe kapa ofe, joalo ka "Hey bot." Hajoale, re hloka sena ho fumana id ea puisano ea hau le bot.
Hona joale re ngola khoutu e latelang ho R.
library(telegram.bot)
# создаём экземпляр бота
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")
# Запрашиваем информацию о боте
print(bot$getMe())
# Получаем обновления бота, т.е. список отправленных ему сообщений
updates <- bot$getUpdates()
# Запрашиваем идентификатор чата
# Примечание: перед запросом обновлений вы должны отправить боту сообщение
chat_id <- updates[[1L]]$from_chat_id()
Qalong, re theha mohlala oa bot ea rona ka ts'ebetso Bot(), letšoao le amohetsoeng pele le tlameha ho fetisetsoa ho eona e le khang.
Ha ho nkoe e le mokhoa o motle oa ho boloka lets'oao ka khoutu, kahoo o ka le boloka sebakeng se feto-fetohang sa tikoloho ebe o se bala ho tsoa ho sona. Ka ho sa feleng ka har'a sephutheloana telegram.bot Tšehetso bakeng sa mefuta-futa ea tikoloho ea mabitso a latelang e kentsoe tšebetsong: R_TELEGRAM_BOT_ИМЯ_ВАШЕГО_БОТА... Sebakeng seo ИМЯ_ВАШЕГО_БОТА nkela sebaka sa lebitso leo u le boletseng ha u theha, molemong oa ka e tla fetoha R_TELEGRAM_BOT_My Test Bot.
Ho na le mekhoa e mengata ea ho theha tikoloho e feto-fetohang; Ke tla u joetsa ka e 'ngoe ea bokahohleng le ea sethala. Theha bukeng ea hau ea lapeng (o ka e fumana u sebelisa taelo path.expand("~")) faele ea mongolo e nang le lebitso .Renviron. U ka boela ua etsa sena u sebelisa taelo file.edit(path.expand(file.path("~", ".Renviron"))).
Ka mor'a moo, o ka sebelisa letšoao le bolokiloeng tikolohong e fapaneng u sebelisa ts'ebetso bot_token(), ke. rata sena:
bot <- Bot(token = bot_token("My Test Bot"))
Mokhoa getUpdates()e re lumella ho fumana lintlafatso tsa bot, i.e. melaetsa e rometsoeng ho eena. Mokhoa from_chat_id(), e u lumella ho fumana ID ea moqoqo oo molaetsa o rometsoeng ho oona. Re hloka ID ena ho romella melaetsa ho tsoa bot.
Ho phaella ho id ea moqoqo ho tloha nthong e fumanoang ke mokhoa getUpdates() o boetse o fumana lintlha tse ling tsa bohlokoa. Mohlala, tlhahisoleseling mabapi le mosebelisi ea rometseng molaetsa.
Kahoo, mothating ona re se re ntse re e-na le tsohle tseo re li hlokang ho romella molaetsa ho tloha bot ho Telegram. Ha re sebeliseng mokhoa sendMessage(), moo o hlokang ho fetisa ID ea moqoqo, mongolo oa molaetsa, le mofuta oa mongolo oa mongolo. Mofuta oa markup e ka ba Markdown kapa HTML mme o behiloe ke khang parse_mode.
# Отправка сообщения
bot$sendMessage(chat_id,
text = "Привет, *жирный текст* _курсив_",
parse_mode = "Markdown"
)
Lintlha tsa motheo tsa ho fomata Markdown:
Bold fonte e totobalitsoe ka *:
mohlala: *жирный шритф*
sephetho: mongolo o motenya
Mongolo o tšekaletseng o bontšoa ka li-underscore:
mohlala: _курсив_
sephetho: mongolo o tšekaletseng
Fonte ea monospace, eo hangata e sebelisetsoang ho totobatsa khoutu ea lenaneo, e hlalosoa ho sebelisoa li-apostrophes - `:
mohlala: `monospace fonte`
sephetho: моноширинный шрифт
Lintlha tsa motheo tsa ho fomata markup ea HTML:
Ka HTML, o thatela karolo ea mongolo e lokelang ho totobatsoa ka li-tag, mohlala <тег>текст</тег>.
<tag> - tag ea ho bula
- letšoao la ho koala
Li-tag tsa matšoao a HTML
<b> - mongolo o motenya
mohlala: <b>жирный шрифт</b>
liphello mongolo o motenya
<i> - mongolo o tšekaletseng
mohlala: <i>курсив</i>
sephetho: mongolo o tšekaletseng
— моноширинный шрифт
mohlala: моноширинный шрифт
sephetho: моноширинный шрифт
Ntle le mongolo, o ka romella litaba tse ling ka mekhoa e ikhethileng:
Tseo. mohlala ho sebelisa mokhoa sendPhoto() o ka romela graph e bolokiloeng e le setšoantšo seo u se entseng u sebelisa sephutheloana ggplot2.
Ho hlahloba Windows Task Scheduler le ho romela litemoso mabapi le mesebetsi e felileng ka mokhoa o sa tloaelehang.
Ho sebetsa le Windows Task Scheduler o hloka ho kenya sephutheloana taskscheduleR, le molemong oa ho sebetsa le data, kenya sephutheloana dplyr.
# Установка пакетов
install.packages(c('taskscheduleR', 'dplyr'))
# Подключение пакетов
library(taskscheduleR)
library(dplyr)
E latelang, sebelisa sesebelisoa taskscheduler_ls() re kopa tlhahisoleseling mabapi le mesebetsi ho tsoa ho mohlophisi oa rona. Ho sebelisa ts'ebetso filter() ho tloha sephutheloana dplyr Re tlosa lethathamong la mesebetsi e ileng ea phethoa ka katleho 'me e na le boemo ba ho qetela ba sephetho sa 0, le tse e-s'o ka li qalisoa 'me li na le boemo ba 267011, mesebetsi ea bokooa, le mesebetsi e ntseng e sebetsa hona joale.
Ka ntho task Hona joale re na le lethathamo la mesebetsi e hlōlehileng, re hloka ho romela lenane lena ho Telegram.
Haeba re sheba taelo e 'ngoe le e' ngoe ka botlalo, joale:
filter() - sefa lenane la mesebetsi ho latela maemo a hlalositsoeng ka holimo
select() - e siea tšimo e le 'ngoe feela tafoleng e nang le mabitso a mesebetsi
unique() - e tlosa mabitso a mabeli
unlist() — e fetolela kholomo ea tafole e khethiloeng ho vector
paste0() - o kopanya mabitso a mesebetsi moleng o le mong, mme o beha phepelo ea line e le karohano, i.e. n.
Sohle se re setseng ke ho romella sephetho sena ka thelekramo.
bot$sendMessage(chat_id,
text = task,
parse_mode = "Markdown"
)
Kahoo, hajoale khoutu ea bot e shebahala tjena:
Khoutu ea bot ea tlhahlobo ea mosebetsi
# Подключение пакета
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"
)
}
Ha u sebelisa mohlala o ka holimo, kenya letšoao la bot le ID ea hau ea moqoqo sebakeng sa khoutu.
O ka eketsa maemo a ho sefa mesebetsi, mohlala, ho sheba feela mesebetsi eo o e entseng, ntle le ea sistimi.
U ka boela ua beha litlhophiso tse fapaneng faeleng e fapaneng ea tlhophiso, 'me u boloke id ea moqoqo le tokeneng ho eona. U ka bala config, mohlala, ho sebelisa sephutheloana configr.
Mohlala ke config
[telegram_bot]
;настройки телеграм бота и чата, в который будут приходить уведомления
chat_id=12345678
bot_token=123456789:abcdefghijklmnopqrstuvwxyz"
Mohlala oa ho bala mefuta e fapaneng ho tsoa ho config ho R
Ho theha kemiso ea ho tsamaisa lisebelisoa tsa mosebetsi
Mokhoa oa ho theha ho thakholoa ha lingoloa ka kemiso e hlalositsoe ka botlalo ho sena sehlooho. Mona ke tla hlalosa feela mehato e lokelang ho lateloa bakeng sa sena. Haeba leha e le efe ea mehato e sa hlaka ho uena, joale sheba sehlooho seo ke faneng ka sehokelo ho sona.
Ha re nke hore re bolokile khoutu ea rona ea bot faeleng check_bot.R. Ho hlophisa faele ena hore e sebetse khafetsa, latela mehato ena:
Ngola tsela e eang foldareng eo R e kentsoeng ho eona Path system variable; ho Windows, tsela e tla ba ntho e kang ena: C:Program FilesRR-4.0.2bin.
Theha faele ea bat e sebetsang ka mola o le mong feela R CMD BATCH C:rscriptscheck_botcheck_bot.R. Tlosa sebaka C:rscriptscheck_botcheck_bot.R ho tsela e felletseng ea faele ea hau ea R.
E latelang, sebelisa Windows Task Scheduler ho theha kemiso ea ho qala, mohlala, halofo ea hora e 'ngoe le e 'ngoe.
fihlela qeto e
Sehloohong sena, re fumane mokhoa oa ho theha bot le ho e sebelisa ho romella litemoso tse fapaneng ka thelekramo.
Ke hlalositse mosebetsi oa ho beha leihlo Windows Task Scheduler, empa u ka sebelisa boitsebiso bo hlahang sehloohong sena ho romela litsebiso leha e le life, ho tloha ho boemo ba leholimo ho ea ho li-quotes tsa stock exchange, hobane R e u lumella ho hokahanya le palo e kholo ea mehloli ea data.
Sehloohong se latelang, re tla fumana mokhoa oa ho eketsa litaelo le keyboard ho bot e le hore e se ke ea romela litsebiso feela, empa hape e etsa liketso tse rarahaneng.