ProHoster > ΠΠ»ΠΎΠ³ > Administrasi > Nulis bot telegram ing R (bagean 1): Nggawe bot lan gunakake kanggo ngirim pesen ing telegram
Nulis bot telegram ing R (bagean 1): Nggawe bot lan gunakake kanggo ngirim pesen ing telegram
Pemirsa Telegram mundhak kanthi eksponensial saben dina, iki difasilitasi dening penak saka utusan, anane saluran, obrolan, lan mesthi kemampuan kanggo nggawe bot.
Bot bisa digunakake kanggo tujuan sing beda, saka ngotomatisasi komunikasi karo pelanggan nganti ngatur tugas sampeyan dhewe.
Ateges, sampeyan bisa nggunakake telegram kanggo nindakake operasi apa wae liwat bot: ngirim utawa njaluk data, mbukak tugas ing server, ngumpulake informasi menyang database, ngirim email, lan liya-liyane.
Aku arep nulis seri artikel babagan cara nggarap telegram bot API, lan nulis bot sing cocog karo kabutuhan sampeyan.
Ing artikel pisanan iki, kita bakal ngerti carane nggawe bot telegram lan digunakake kanggo ngirim kabar ing telegram.
Nanging tujuan saka seri artikel iki ora kanggo mulang sampeyan carane nulis bot kanggo tugas tartamtu sing sempit, nanging umume ngenalake sintaks paket kasebut. telegram.bot, lan conto kode sing bisa digunakake kanggo nulis bot kanggo ngatasi masalah sampeyan dhewe.
Pisanan, kita kudu nggawe bot. Iki rampung nggunakake bot khusus BotBapak, pindhah menyang link lan nulis menyang bot /start.
Sawise sampeyan bakal nampa pesen kanthi dhaptar perintah:
Pesen saka 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
Kanggo nggawe bot anyar, kirim printah /newbot.
BotFather bakal njaluk sampeyan ngetik jeneng bot lan mlebu.
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
Sampeyan bisa ngetik jeneng apa wae, nanging login kudu diakhiri bot.
Yen sampeyan nindakake kabeh kanthi bener, sampeyan bakal nampa pesen ing ngisor iki:
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
Sabanjure sampeyan butuh token API sing ditampa, ing contoku 123456789:abcdefghijklmnopqrstuvwxyz.
Ing langkah iki, karya persiapan kanggo nggawe bot wis rampung.
Nginstal paket kanggo nggarap bot telegram ing R
Aku nganggep yen sampeyan wis nginstal basa R lan lingkungan pangembangan RStudio. Yen ora, sampeyan bisa ndeleng iki tutorial video carane kanggo nginstal.
Kanggo nggarap Telegram Bot API kita bakal nggunakake paket R telegram.bot.
Nginstal paket ing R wis rampung nggunakake fungsi install.packages(), supaya nginstal paket sing kita butuhake, gunakake perintah kasebut install.packages("telegram.bot").
Sampeyan bisa sinau luwih lengkap babagan nginstal macem-macem paket saka video iki.
Sawise nginstal paket kasebut, sampeyan kudu nyambungake:
library(telegram.bot)
Ngirim pesen saka R menyang Telegram
Bot sing digawe bisa ditemokake ing Telegram nggunakake login sing ditemtokake nalika nggawe, ing kasusku @my_test_bot.
Kirimi bot sembarang pesen, kayata "Hei bot." Saiki, kita butuh iki kanggo entuk id obrolan sampeyan karo bot.
Kaping pisanan, kita nggawe conto bot kita kanthi fungsi kasebut Bot(), token sing ditampa sadurunge kudu dilebokake minangka argumen.
Ora dianggep minangka praktik paling apik kanggo nyimpen token ing kode, supaya sampeyan bisa nyimpen ing variabel lingkungan lan maca saka iku. Kanthi gawan ing paket telegram.bot Dhukungan kanggo variabel lingkungan saka jeneng ing ngisor iki wis dileksanakake: R_TELEGRAM_BOT_ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π... tinimbang ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π ngganti jeneng sing sampeyan nemtokake nalika nggawe, ing kasusku bakal dadi variabel R_TELEGRAM_BOT_My Test Bot.
Ana sawetara cara kanggo nggawe variabel lingkungan; Aku bakal ngandhani babagan sing paling universal lan lintas platform. Gawe ing direktori ngarep (sampeyan bisa nemokake kanthi nggunakake printah path.expand("~")) file teks kanthi jeneng .Renviron. Sampeyan uga bisa nindakake iki nggunakake printah file.edit(path.expand(file.path("~", ".Renviron"))).
Sabanjure, sampeyan bisa nggunakake token sing disimpen ing variabel lingkungan nggunakake fungsi kasebut bot_token(), i.e. kaya iki:
bot <- Bot(token = bot_token("My Test Bot"))
Cara getUpdates()ngidini kita entuk nganyari bot, yaiku. pesen sing dikirim menyang dheweke. Metode from_chat_id(), ngidini sampeyan entuk ID chatting saka ngendi pesen kasebut dikirim. Kita butuh ID iki kanggo ngirim pesen saka bot.
Saliyane chatting id saka obyek dijupuk dening cara getUpdates() sampeyan uga nampa sawetara informasi migunani liyane. Contone, informasi babagan pangguna sing ngirim pesen.
Dadi, ing tahap iki kita wis duwe kabeh sing dibutuhake kanggo ngirim pesen saka bot menyang Telegram. Ayo nggunakake cara sendMessage(), ing ngendi sampeyan kudu ngirim ID chatting, teks pesen, lan jinis markup teks pesen. Jinis markup bisa Markdown utawa HTML lan disetel dening argumen parse_mode.
Sabanjure, nggunakake fungsi taskscheduler_ls() kita njaluk informasi babagan tugas saka panjadwal kita. Nggunakake fungsi filter() saka paket dplyr Kita mbusak saka dhaptar tugas sing wis kasil rampung lan duwe status asil pungkasan 0, lan sing durung tau dibukak lan duwe status 267011, tugas dipatèni, lan tugas sing lagi mlaku.
Nalika nggunakake conto ing ndhuwur, ngganti token bot lan ID chatting menyang kode.
Sampeyan bisa nambah kahanan kanggo nyaring tugas, contone, mriksa mung tugas sing digawe, ora kalebu sistem.
Sampeyan uga bisa sijine macem-macem setelan menyang file konfigurasi kapisah, lan nyimpen chatting id lan token ing. Sampeyan bisa maca konfigurasi, contone, nggunakake paket configr.
Proses nyetel peluncuran skrip ing jadwal diterangake kanthi luwih rinci ing iki artikel. Ing kene aku mung bakal nerangake langkah-langkah sing kudu ditindakake kanggo iki. Yen langkah-langkah sing ora jelas kanggo sampeyan, deleng artikel sing dakwenehake link.
Ayo nganggep yen kita nyimpen kode bot menyang file check_bot.R. Kanggo gawe jadwal file iki supaya bisa mlaku kanthi rutin, tindakake langkah iki:
Tulis path menyang folder ing ngendi R diinstal ing variabel sistem Path; ing Windows, path bakal kaya iki: C:Program FilesRR-4.0.2bin.
Gawe file bat sing bisa dieksekusi kanthi mung siji baris R CMD BATCH C:rscriptscheck_botcheck_bot.R. Ganti C:rscriptscheck_botcheck_bot.R menyang path lengkap menyang file R sampeyan.
Sabanjure, gunakake Windows Task Scheduler kanggo nyetel jadwal peluncuran, contone, saben setengah jam.
kesimpulan
Ing artikel iki, kita ngerti carane nggawe bot lan digunakake kanggo ngirim macem-macem kabar ing telegram.
Aku nerangake tugas ngawasi Windows Task Scheduler, nanging sampeyan bisa nggunakake materi ing artikel iki kanggo ngirim kabar apa wae, saka ramalan cuaca kanggo kuotasi saham ing bursa saham, amarga R ngijini sampeyan kanggo nyambung menyang nomer ageng sumber data.
Ing artikel sabanjure, kita bakal ngerti carane nambah perintah lan keyboard menyang bot supaya ora mung ngirim kabar, nanging uga nindakake tumindak sing luwih rumit.