Vateereri veTeregiramu vari kukura zvakanyanya mazuva ese, izvi zvinofambiswa nekureruka kwemutumwa, kuvapo kwechiteshi, chats, uye zvechokwadi kugona kugadzira bots.
Mabhoti anogona kushandiswa kune zvakasiyana zvachose zvinangwa, kubva otomatiki kutaurirana nevatengi vako kubata ako ega mabasa.
Chaizvoizvo, unogona kushandisa teregiramu kuita chero mashandiro kuburikidza nebhoti: kutumira kana kukumbira data, mhanyisa mabasa pane sevha, unganidza ruzivo mudhatabhesi, kutumira maemail, zvichingodaro.
Ndinoronga kunyora nhevedzano yezvinyorwa pamusoro pekushanda nazvo
Muchinyorwa chino chekutanga tichaona nzira yekugadzira teregiramu bot uye toishandisa kutumira zviziviso muteregiramu.
Nekuda kweizvozvo, isu tichava nebhoti iyo inoongorora mamiriro ekupedzisira kuitwa kwese mabasa muWindows Task Scheduler, uye kukutumira zviziviso kana chimwe chazvo chakundikana.
Asi chinangwa cheiyi nhevedzano yezvinyorwa hakusi kukudzidzisa kunyora bot kune chaiyo, nhete basa, asi kazhinji kukuzivisa iwe kune syntax yepakeji. telegram.bot
, uye mienzaniso yekodhi iyo iwe unogona kunyora bots kugadzirisa matambudziko ako pachako.
Zviri mukati
Kana iwe uchifarira kuongorora data, unogona kunge uchifarira zvangu
Kugadzira telegraph bot Kuisa pasuru yekushanda ne telegraph bot muR Kutumira mameseji kubva kuR kuenda kuTeregiramu Kugadzira hurongwa hwekumhanyisa basa scans mhedziso
Kugadzira telegraph bot
Kutanga, isu tinofanirwa kugadzira bot. Izvi zvinoitwa uchishandisa yakakosha bot BotFather, enda ku /start
.
Mushure mezvo iwe uchagamuchira meseji ine runyorwa rwemirairo:
Mharidzo kubva kuna 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
Kuti ugadzire bhoti itsva, tumira murairo /newbot
.
BotFather inokukumbira kuti uise zita re bot uye kupinda.
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
Iwe unogona kuisa chero zita, asi iyo login inofanira kupera nayo bot
.
Kana iwe waita zvese nemazvo, uchagamuchira inotevera meseji:
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
Tevere iwe uchada yakagamuchirwa API tokeni, mumuenzaniso wangu ndizvo 123456789:abcdefghijklmnopqrstuvwxyz
.
Padanho iri, basa rekugadzirira kugadzira bot rinopedzwa.
Kuisa pasuru yekushanda ne telegraph bot muR
Ini ndinofungidzira kuti watova nemutauro weR uye RStudio budiriro nharaunda yakaiswa. Kana zvisina kudaro, iwe unogona kutarisa izvi
Kushanda neTeregiramu Bot API isu tichashandisa iyo R package
Kuisa mapakeji muR kunoitwa uchishandisa basa install.packages()
, saka kuisa pasuru yatinoda, shandisa rairo install.packages("telegram.bot")
.
Iwe unogona kudzidza zvakawanda nezve kuisa akasiyana mapakeji kubva
Mushure mekuisa iyo package, unofanirwa kuibatanidza:
library(telegram.bot)
Kutumira mameseji kubva kuR kuenda kuTeregiramu
Iyo bot yawakagadzira inogona kuwanikwa muTeregiramu uchishandisa iyo login yakatsanangurwa panguva yekusika, mune yangu ndiyo @my_test_bot
.
Tumira bot chero meseji, senge "Hei bot." Parizvino, isu tinoda izvi kuti tiwane id yekutaura kwako ne bot.
Iye zvino tinonyora kodhi inotevera muR.
library(telegram.bot)
# ΡΠΎΠ·Π΄Π°ΡΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π±ΠΎΡΠ°
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")
# ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π±ΠΎΡΠ΅
print(bot$getMe())
# ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΠΎΡΠ°, Ρ.Π΅. ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ
Π΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
updates <- bot$getUpdates()
# ΠΠ°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ°ΡΠ°
# ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΠΎΡΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π±ΠΎΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
chat_id <- updates[[1L]]$from_chat_id()
Pakutanga, tinogadzira muenzaniso webhoti yedu nebasa Bot()
, chiratidzo chakambogamuchirwa chinofanira kupfuudzwa mairi senharo.
Kuchengeta chiratidzo mukodhi hakuonekwe seyakanakisa tsika, saka unogona kuichengeta munzvimbo inosiyana uye woiverenga kubva mairi. By default mupakeji telegram.bot
Tsigiro yezvakasiyana nharaunda yemazita anotevera yaitwa: R_TELEGRAM_BOT_ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π
... Pane kudaro ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π
tsiva zita rawakataura paunenge uchigadzira, mune yangu richave shanduko R_TELEGRAM_BOT_My Test Bot
.
Pane nzira dzinoverengeka dzekugadzira nharaunda inoshanduka; Ini ndichakuudza nezve yakasarudzika uye muchinjika-chikuva chimwe. Gadzira mudhairekitori rako repamba (unogona kuiwana uchishandisa rairo path.expand("~")
) text file ine zita racho .Renviron. Iwe unogona zvakare kuita izvi uchishandisa murairo file.edit(path.expand(file.path("~", ".Renviron")))
.
Uye wedzera mutsara unotevera kwairi.
R_TELEGRAM_BOT_ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π=123456789:abcdefghijklmnopqrstuvwxyz
Tevere, unogona kushandisa chiratidzo chakachengetwa mune nharaunda chinja uchishandisa basa bot_token()
, i.e. sezvizvi:
bot <- Bot(token = bot_token("My Test Bot"))
Method getUpdates()
inotibvumira kuwana bot updates, i.e. mameseji akatumirwa kwaari. Nzira from_chat_id()
, inokutendera kuti utore ID yechat kubva kwaitumirwa meseji. Tinoda iyi ID kutumira mameseji kubva kubhoti.
Mukuwedzera kune id yekutaura kubva pane chinhu chakawanikwa nenzira getUpdates()
iwe unogamuchirawo mamwe mashoko anobatsira. Semuenzaniso, ruzivo nezve mushandisi akatumira meseji.
updates[[1L]]$message$from
$id
[1] 000000000
$is_bot
[1] FALSE
$first_name
[1] "Alexey"
$last_name
[1] "Seleznev"
$username
[1] "AlexeySeleznev"
$language_code
[1] "ru"
Saka, panguva ino tatova nezvose zvatinoda kutumira meseji kubva kubhoti kuenda kuTeregiramu. Ngatishandise nzira sendMessage()
, iyo yaunoda kupfuudza chat ID, meseji meseji, uye meseji meseji markup mhando. Iyo markup type inogona kunge iri Markdown kana HTML uye inoiswa nenharo parse_mode
.
# ΠΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
bot$sendMessage(chat_id,
text = "ΠΡΠΈΠ²Π΅Ρ, *ΠΆΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ* _ΠΊΡΡΡΠΈΠ²_",
parse_mode = "Markdown"
)
Markdown formatting basics:
- Bold font inoratidzwa ne *:
- muenzaniso:
*ΠΆΠΈΡΠ½ΡΠΉ ΡΡΠΈΡΡ*
- mhedzisiro: bold font
- muenzaniso:
- Kutsveyamisa mashoko kunoratidzwa nema underscores:
- muenzaniso:
_ΠΊΡΡΡΠΈΠ²_
- mhedzisiro: tatsveyamisa mabhii
- muenzaniso:
- Iyo monospace font, iyo inowanzo shandiswa kuratidza kodhi yepurogiramu, inotsanangurwa uchishandisa apostrophes - `:
- muenzaniso: `monospace font`
- mhedzisiro:
ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
Nheyo dzekugadzirisa HTML markup:
MuHTML, unoputira chikamu chemavara chinoda kujekeswa muma tag, semuenzaniso <ΡΠ΅Π³>ΡΠ΅ΠΊΡΡ</ΡΠ΅Π³>
.
- <tag> - kuvhura tag
- - kuvhara tag
HTML markup tags
<b>
- bold font- muenzaniso:
<b>ΠΆΠΈΡΠ½ΡΠΉ ΡΡΠΈΡΡ</b>
- kuitika bold font
- muenzaniso:
<i>
- pakatsveyama- muenzaniso:
<i>ΠΊΡΡΡΠΈΠ²</i>
- mhedzisiro: tatsveyamisa mabhii
- muenzaniso:
- β ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
- muenzaniso: ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
- mhedzisiro:
ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
Pamusoro pezvinyorwa, unogona kutumira zvimwe zvemukati uchishandisa nzira dzakakosha:
# ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
bot$sendPhoto(chat_id,
photo = "https://telegram.org/img/t_logo.png"
)
# ΠΡΠΏΡΠ°Π²ΠΊΠ° Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
bot$sendAudio(chat_id,
audio = "http://www.largesound.com/ashborytour/sound/brobob.mp3"
)
# ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ
bot$sendDocument(chat_id,
document = "https://github.com/ebeneditos/telegram.bot/raw/gh-pages/docs/telegram.bot.pdf"
)
# ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΈΠΊΠ΅Ρ
bot$sendSticker(chat_id,
sticker = "https://www.gstatic.com/webp/gallery/1.webp"
)
# ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎ
bot$sendVideo(chat_id,
video = "http://techslides.com/demos/sample-videos/small.mp4"
)
# ΠΡΠΏΡΠ°Π²ΠΈΡΡ gif Π°Π½ΠΈΠΌΠ°ΡΠΈΡ
bot$sendAnimation(chat_id,
animation = "https://media.giphy.com/media/sIIhZliB2McAo/giphy.gif"
)
# ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π»ΠΎΠΊΠ°ΡΠΈΡ
bot$sendLocation(chat_id,
latitude = 51.521727,
longitude = -0.117255
)
# ΠΠΌΠΈΡΠ°ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΠ°ΡΠ΅
bot$sendChatAction(chat_id,
action = "typing"
)
Avo. semuenzaniso kushandisa nzira sendPhoto()
unogona kutumira girafu rakachengetwa semufananidzo wawakagadzira uchishandisa package ggplot2
.
Kutarisa iyo Windows Task Scheduler uye kutumira zviziviso nezve mabasa apera zvisirizvo.
Kuti ushande neWindows Task Scheduler unofanirwa kuisa iyo package taskscheduleR
, uye kuti zvive nyore kushanda nedata, isa pasuru dplyr
.
# Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
install.packages(c('taskscheduleR', 'dplyr'))
# ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
library(taskscheduleR)
library(dplyr)
Zvadaro, kushandisa basa taskscheduler_ls()
isu tinokumbira ruzivo nezvemabasa kubva kune yedu scheduler. Kushandisa basa filter()
kubva pasuru dplyr
Isu tinobvisa kubva pane rondedzero yemabasa ayo akapedzwa zvakabudirira uye ane yekupedzisira mhedzisiro mamiriro e0, uye ayo asina kumbotangwa uye ane chimiro che267011, akaremara mabasa, uye mabasa ari kushanda parizvino.
# Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Π·Π°Π΄Π°Ρ
task <- task <- taskscheduler_ls() %>%
filter(! `Last Result` %in% c("0", "267011") &
`Scheduled Task State` == "Enabled" &
Status != "Running") %>%
select(TaskName) %>%
unique() %>%
unlist() %>%
paste0(., collapse = "n")
Muchinhu task
Isu tave nerondedzero yemabasa akatadza, isu tinofanirwa kutumira iyi runyorwa kuTeregiramu.
Kana tikatarisa murairo wega wega zvakadzama, zvino:
filter()
- inosefa rondedzero yemabasa zvinoenderana nemamiriro atsanangurwa pamusoroselect()
- inosiya munda mumwe chete patafura ine zita remabasaunique()
- inobvisa mazita akadzokororwaunlist()
- inoshandura tafura yetafura yakasarudzwa kune vectorpaste0()
- inobatanidza mazita emabasa mumutsara mumwe, uye inoisa mutsara wekudya semuparadzi, i.e.n
.
Chasara kwatiri kutumira mhedzisiro iyi kuburikidza neteregiramu.
bot$sendMessage(chat_id,
text = task,
parse_mode = "Markdown"
)
Saka, parizvino iyo bot kodhi inoita seizvi:
Basa rekuongorora bot kodhi
# ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
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"
)
}
Paunenge uchishandisa muenzaniso uri pamusoro, tsiva yako bot tokeni uye ID yako yekutaura mukodhi.
Iwe unogona kuwedzera mamiriro ekusefa mabasa, semuenzaniso, kutarisa chete iwo mabasa awakagadzira, kusasanganisa iwo ehurongwa.
Iwe unogona zvakare kuisa akasiyana marongero mune yakaparadzana faira yekumisikidza, uye chengetedza chat id uye chiratidzo mairi. Iwe unogona kuverenga iyo config, semuenzaniso, uchishandisa iyo package configr
.
Muenzaniso ini config
[telegram_bot]
;Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡΠ° ΠΈ ΡΠ°ΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ
chat_id=12345678
bot_token=123456789:abcdefghijklmnopqrstuvwxyz"
Muenzaniso wekuverenga zvakasiyana kubva kune config muR
library(configr)
# ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ½Π°
config <- read.config('C:/ΠΏΡΡΡ_ΠΊ_ΠΊΠΎΠ½ΡΠΈΠ³Ρ/config.cfg', rcmd.parse = TRUE)
bot_token <- config$telegram_bot$bot_token
chat_id <- config$telegram_bot$chat_id
Kugadzira hurongwa hwekumhanyisa basa scans
Iyo nzira yekumisikidza yakarongwa script kutanga inotsanangurwa zvakadzama mune izvi
Ngatifungei kuti takachengeta bot code yedu kufaira check_bot.R
. Kuronga faira iri kuti rishande nguva dzose, tevera matanho aya:
- Nyora nzira inoenda kuforodha iyo R yakaiswa muPath system inoshanduka; muWindows, nzira ichava chinhu chakadai:
C:Program FilesRR-4.0.2bin
. - Gadzira faira rebat rinogoneka nemutsara mumwe chete
R CMD BATCH C:rscriptscheck_botcheck_bot.R
. TsivaC:rscriptscheck_botcheck_bot.R
kune iyo yakazara nzira kune yako R faira. - Tevere, shandisa Windows Task Scheduler kumisikidza hurongwa hwekutanga, semuenzaniso, hafu yeawa yega yega.
mhedziso
Muchinyorwa chino, takaona kuti tingagadzira sei bot uye toishandisa kutumira zviziviso zvakasiyana muteregiramu.
Ini ndakatsanangura basa rekutarisa iyo Windows Task Scheduler, asi unogona kushandisa zviri muchinyorwa chino kutumira chero zviziviso, kubva kumamiriro ekunze kusvika kune stock quotes pastock exchange, nekuti. R inokutendera kuti ubatanidze kune yakakura nhamba yedata masosi.
Muchikamu chinotevera, tichaona kuti tingawedzera sei mirairo uye keyboard kune bot kuitira kuti isangotumira zviziviso chete, asiwo kuita zviito zvakaoma.
Source: www.habr.com