ProHoster > Blag > Riarachán > Bot teileagram a scríobh i R (cuid 1): Bot a chruthú agus é a úsáid chun teachtaireachtaí a sheoladh i teileagram
Bot teileagram a scríobh i R (cuid 1): Bot a chruthú agus é a úsáid chun teachtaireachtaí a sheoladh i teileagram
Tá lucht féachana Telegram ag fás go heaspónantúil gach lá, éascaítear é seo ag áisiúlacht an teachtaire, láithreacht cainéil, comhráite, agus ar ndóigh an cumas róbónna a chruthú.
Is féidir róbónna a úsáid chun críocha go hiomlán difriúil, ó chumarsáid a uathoibriú le do chustaiméirí go dtí do thascanna féin a bhainistiú.
Go bunúsach, is féidir leat teileagram a úsáid chun aon oibríochtaí a dhéanamh trí bot: sonraí a sheoladh nó a iarraidh, tascanna a rith ar an bhfreastalaí, faisnéis a bhailiú isteach i mbunachar sonraí, ríomhphoist a sheoladh, agus mar sin de.
Tá sé beartaithe agam sraith alt a scríobh ar conas oibriú leo Telegram bot API, agus scríobh róbónna a oireann do do chuid riachtanas.
Sa chéad Airteagal seo déanfaimid amach conas bot teileagraim a chruthú agus é a úsáid chun fógraí a sheoladh i teileagram.
Mar thoradh air sin, beidh bot againn a dhéanfaidh seiceáil ar stádas an fhorghníomhaithe deiridh de na tascanna go léir i Sceidealóir Tasc Windows, agus a sheolfaidh fógraí chugat má theip ar aon cheann acu.
Ach ní hé cuspóir na sraithe alt seo ná tú a mhúineadh conas bot a scríobh le haghaidh tasc sonrach caol, ach tú a chur in aithne go ginearálta ar chomhréir an phacáiste. telegram.bot, agus samplaí cód lenar féidir leat róbónna a scríobh chun do chuid fadhbanna féin a réiteach.
Ábhar
Má tá suim agat in anailís sonraí, b'fhéidir go mbeadh suim agat i mo chuid teileagram и youtube cainéil. Tá an chuid is mó den ábhar tiomnaithe don teanga R.
Gcéad dul síos, ní mór dúinn a chruthú bot. Déantar é seo trí úsáid a bhaint as bot speisialta BotAthair, Téigh nasc agus scríobh chuig an bot /start.
Ina dhiaidh sin gheobhaidh tú teachtaireacht le liosta orduithe:
Teachtaireacht ó 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
Chun bot nua a chruthú, seol an t-ordú /newbot.
Iarrfaidh BotFather ort ainm agus logáil isteach an bot a chur isteach.
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
Is féidir leat aon ainm a chur isteach, ach caithfidh an logáil isteach críochnú le bot.
Má rinne tú gach rud i gceart, gheobhaidh tú an teachtaireacht seo a leanas:
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
Ansin beidh an comhartha API faighte uait, i mo shampla é 123456789:abcdefghijklmnopqrstuvwxyz.
Ag an gcéim seo, críochnaíodh an obair ullmhúcháin chun an bot a chruthú.
Suiteáil pacáiste chun oibriú le bot teileagraim i R
Glacaim leis go bhfuil an teanga R agus an timpeallacht forbartha RStudio suiteáilte agat cheana féin. Mura bhfuil sé seo amhlaidh, ansin is féidir leat breathnú ar seo físeán teagaisc ar conas iad a shuiteáil.
Chun oibriú leis an Telegram Bot API bainfimid úsáid as an bpacáiste R teileagram.bot.
Déantar pacáistí a shuiteáil in R trí úsáid a bhaint as an bhfeidhm install.packages(), mar sin chun an pacáiste a theastaíonn uainn a shuiteáil, bain úsáid as an ordú install.packages("telegram.bot").
Is féidir leat níos mó a fhoghlaim faoi shuiteáil pacáistí éagsúla ó físeán seo.
Tar éis duit an pacáiste a shuiteáil, ní mór duit é a nascadh:
library(telegram.bot)
Teachtaireachtaí a sheoladh ó R go Telegram
Is féidir an bot a chruthaigh tú a fháil i Telegram ag baint úsáide as an logáil isteach a shonraítear le linn an chruthú, i mo chás féin é @my_test_bot.
Seol teachtaireacht ar bith don bot, mar shampla "Hey bot." I láthair na huaire, tá sé seo ag teastáil uainn chun aitheantas do chomhrá a fháil leis an bot.
Anois scríobhaimid an cód seo a leanas i R.
library(telegram.bot)
# создаём экземпляр бота
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")
# Запрашиваем информацию о боте
print(bot$getMe())
# Получаем обновления бота, т.е. список отправленных ему сообщений
updates <- bot$getUpdates()
# Запрашиваем идентификатор чата
# Примечание: перед запросом обновлений вы должны отправить боту сообщение
chat_id <- updates[[1L]]$from_chat_id()
Ar dtús, cruthaímid sampla dár bot leis an bhfeidhm Bot(), ní mór an comhartha a fuarthas roimhe seo a chur ar aghaidh mar argóint.
Ní mheastar gur dea-chleachtas é an comhartha i gcód a stóráil, ionas gur féidir leat é a stóráil in athróg timpeallachta agus é a léamh uaidh. De réir réamhshocraithe sa phacáiste telegram.bot Tá tacaíocht d’athróga comhshaoil de na hainmneacha seo a leanas curtha i bhfeidhm: R_TELEGRAM_BOT_ИМЯ_ВАШЕГО_БОТА. In ionad ИМЯ_ВАШЕГО_БОТА cuir an t-ainm a shonraigh tú agus tú ag cruthú in ionad, i mo chás is athróg a bheidh ann R_TELEGRAM_BOT_My Test Bot.
Tá go leor bealaí ann chun athróg timpeallachta a chruthú; inseoidh mé duit faoin gceann is uilíoch agus tras-ardán. Cruthaigh i do eolaire baile (is féidir leat é a fháil tríd an ordú path.expand("~")) téacschomhad leis an ainm .Renviron. Is féidir leat é seo a dhéanamh freisin ag baint úsáide as an ordú file.edit(path.expand(file.path("~", ".Renviron"))).
Ansin, is féidir leat an comhartha a shábháil san athróg timpeallachta a úsáid leis an bhfeidhm bot_token(), i.e. mar seo:
bot <- Bot(token = bot_token("My Test Bot"))
Modh getUpdates()ligeann dúinn nuashonruithe bot a fháil, i.e. teachtaireachtaí a seoladh chuige. Modh from_chat_id(), is féidir leat ID an chomhrá a fháil ónar seoladh an teachtaireacht. Teastaíonn an t-aitheantas seo uainn chun teachtaireachtaí a sheoladh ón bot.
Chomh maith leis an id comhrá ón réad a fhaightear tríd an modh getUpdates() faigheann tú eolas úsáideach eile freisin. Mar shampla, faisnéis faoin úsáideoir a sheol an teachtaireacht.
Mar sin, ag an gcéim seo tá gach rud a theastaíonn uainn cheana féin chun teachtaireacht a sheoladh ó bot go Telegram. Bainimis úsáid as an modh sendMessage(), ina gcaithfidh tú an ID comhrá, an téacs teachtaireachta, agus an cineál marcála téacs teachtaireachta a chur ar aghaidh. Is féidir Markdown nó HTML a bheith sa chineál marcála agus tá sé socraithe ag an argóint parse_mode.
# Отправка сообщения
bot$sendMessage(chat_id,
text = "Привет, *жирный текст* _курсив_",
parse_mode = "Markdown"
)
Bunúsacha formáidithe Markdown:
Aibhsítear cló trom le *:
mar shampla: *жирный шритф*
toradh: cló trom
Léirítear cló iodálach le béim ar:
mar shampla: _курсив_
toradh: iodálach
Sonraítear an cló monaspáis, a úsáidtear go hiondúil chun cód cláir a aibhsiú, trí úsáid a bhaint as réimhseacháin - `:
shampla: `cló monospace`
toradh: моноширинный шрифт
Bunúsacha marcáil HTML a fhormáidiú:
I HTML, fillteann tú an chuid den téacs a chaithfear a aibhsiú i gclibeanna, mar shampla <тег>текст</тег>.
<tag> - clib oscailt
- clib deiridh
Clibeanna marcála HTML
<b> - cló trom
mar shampla: <b>жирный шрифт</b>
mar thoradh ar cló trom
<i> - iodálach
mar shampla: <i>курсив</i>
toradh: iodálach
— моноширинный шрифт
shampla: моноширинный шрифт
toradh: моноширинный шрифт
Chomh maith le téacs, is féidir leat ábhar eile a sheoladh trí úsáid a bhaint as modhanna speisialta:
Iad siúd. mar shampla ag baint úsáide as an modh sendPhoto() is féidir leat graf a shábháil mar íomhá a chruthaigh tú ag baint úsáide as an bpacáiste a sheoladh ggplot2.
Ag seiceáil an Windows Task Scheduler agus ag seoladh fógraí faoi thascanna a tháinig deireadh go neamhghnách
Chun oibriú le Windows Task Scheduler ní mór duit an pacáiste a shuiteáil taskscheduleR, agus chun an áisiúlacht a bheith ag obair le sonraí, an pacáiste a shuiteáil dplyr.
# Установка пакетов
install.packages(c('taskscheduleR', 'dplyr'))
# Подключение пакетов
library(taskscheduleR)
library(dplyr)
Next, ag baint úsáide as an fheidhm taskscheduler_ls() iarraimid eolas faoi thascanna ónár sceidealóir. Ag baint úsáide as an fheidhm filter() as an bpacáiste dplyr Bainimid de liosta na dtascanna iad siúd a críochnaíodh go rathúil agus a bhfuil stádas toradh deiridh de 0 acu, agus iad siúd nár seoladh riamh agus a bhfuil stádas 267011 acu, tascanna faoi mhíchumas, agus tascanna atá ar siúl faoi láthair.
Sa réad task Tá liosta tascanna againn anois ar theip orthu, ní mór dúinn an liosta seo a sheoladh chuig Telegram.
Má fhéachaimid ar gach ordú go mion, ansin:
filter() — liosta na dtascanna a scagadh de réir na gcoinníollacha a gcuirtear síos orthu thuas
select() — ní fhágann ach réimse amháin sa tábla ar a bhfuil ainm na dtascanna
unique() - baintear ainmneacha dúblacha
unlist() — a thiontaíonn an colún tábla roghnaithe go veicteoir
paste0() — nascann sé ainmneacha tascanna i líne amháin, agus cuireann sé fotha líne mar dheighilteoir, i.e. n.
Níl fágtha againn ach an toradh seo a sheoladh trí theileagram.
bot$sendMessage(chat_id,
text = task,
parse_mode = "Markdown"
)
Mar sin, i láthair na huaire tá cuma ar an gcód bot mar seo:
Cód bot athbhreithniú tasc
# Подключение пакета
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"
)
}
Agus an sampla thuas in úsáid agat, cuir do chomhartha bot agus d’aitheantas comhrá isteach sa chód.
Is féidir leat coinníollacha a chur leis maidir le tascanna scagtha, mar shampla, gan seiceáil ach na tascanna sin a chruthaigh tú, gan na cinn chórais a áireamh.
Is féidir leat freisin socruithe éagsúla a chur isteach i gcomhad cumraíochta ar leith, agus an t-aitheantas comhrá agus an comhartha a stóráil ann. Is féidir leat an config a léamh, mar shampla, ag baint úsáide as an bpacáiste configr.
Sampla ini config
[telegram_bot]
;настройки телеграм бота и чата, в который будут приходить уведомления
chat_id=12345678
bot_token=123456789:abcdefghijklmnopqrstuvwxyz"
Sampla d’athróga léitheoireachta ó chumraíocht in R
Déantar cur síos níos mine anseo ar an bpróiseas a bhaineann le seoladh scripteanna ar sceideal a bhunú Airteagal. Anseo ní dhéanfaidh mé ach cur síos ar na céimeanna nach mór a leanúint chuige seo. Mura bhfuil aon cheann de na céimeanna soiléir duit, déan tagairt don alt ar chuir mé nasc ar fáil dó.
Glacaimid leis gur shábháileamar ár gcód bot i gcomhad check_bot.R. Chun an comhad seo a sceidealú le rith go rialta, lean na céimeanna seo:
Scríobh an cosán chuig an bhfillteán ina bhfuil R suiteáilte in athróg an chórais Path; i Windows, beidh an cosán mar rud mar seo: C:Program FilesRR-4.0.2bin.
Cruthaigh comhad ialtóg inrite le líne amháin R CMD BATCH C:rscriptscheck_botcheck_bot.R. Ionadaigh C:rscriptscheck_botcheck_bot.R go dtí an cosán iomlán chuig do chomhad R.
Ansin, bain úsáid as Windows Task Scheduler chun sceideal seolta a shocrú, mar shampla, gach leath uair an chloig.
Conclúid
San Airteagal seo, rinneamar amach conas bot a chruthú agus é a úsáid chun fógraí éagsúla a sheoladh i teileagram.
Rinne mé cur síos ar an tasc a bhaineann le monatóireacht a dhéanamh ar an Sceidealóir Tasc Windows, ach is féidir leat an t-ábhar san Airteagal seo a úsáid chun aon fhógraí a sheoladh, ó réamhaisnéis na haimsire go Sleachta stoic ar an stocmhalartán, mar gheall ar Ligeann R duit ceangal le líon mór foinsí sonraí.
Sa chéad alt eile, déanfaimid amach conas orduithe agus méarchlár a chur leis an bot ionas nach féidir leis fógraí a sheoladh ní hamháin, ach freisin gníomhartha níos casta a dhéanamh.