ProHoster > Blog > Administrazioa > Telegram bot bat R-n idaztea (1. zatia): bot bat sortzea eta telegram-en mezuak bidaltzeko erabiltzea
Telegram bot bat R-n idaztea (1. zatia): bot bat sortzea eta telegram-en mezuak bidaltzeko erabiltzea
Telegramen audientzia esponentzialki hazten ari da egunero, mezulariaren erosotasunak, kanalen presentzia, txat eta, noski, bot-ak sortzeko gaitasunak errazten du.
Bot-ak helburu guztiz ezberdinetarako erabil daitezke, zure bezeroekin komunikazioak automatizatzen hasi eta zure zereginak kudeatzeko.
Funtsean, telegrama erabil dezakezu bot baten bidez edozein eragiketa egiteko: datuak bidali edo eskatzeko, zerbitzarian zereginak exekutatu, informazioa datu-base batean biltzeko, mezu elektronikoak bidaltzeko, etab.
Lan egiteko moduari buruzko artikulu sorta bat idazteko asmoa dut telegram bot APIa, eta idatzi bot-ak zure beharretara egokitzeko.
Lehenengo artikulu honetan telegram bot bat nola sortu eta telegramen jakinarazpenak bidaltzeko erabiliko dugu.
Ondorioz, Windows Task Scheduler-en zeregin guztien azken exekuzioaren egoera egiaztatuko duen bot bat izango dugu, eta jakinarazpenak bidaliko dizkizu horietakoren batek huts egiten badu.
Baina artikulu sorta honen helburua ez da zeregin zehatz eta zehatz baterako bot bat nola idazten irakastea, baizik eta, oro har, paketearen sintaxia ezagutaraztea. telegram.bot, eta zure arazoak konpontzeko bot-ak idazteko kode adibideak.
Edukia
Datuen analisia interesatzen bazaizu, baliteke nirea interesatzea telegrama ΠΈ youtube kanalak. Eduki gehienak R hizkuntzari eskainitakoak dira.
Lehenik eta behin, bot bat sortu behar dugu. Hau bot berezi bat erabiliz egiten da BotAita, joan link eta idatzi bot-ari /start.
Horren ostean, komandoen zerrenda duen mezu bat jasoko duzu:
BotFather-en mezua
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
Bot berri bat sortzeko, bidali komandoa /newbot.
BotFather-ek bot-aren izena eta saioa hasteko eskatuko dizu.
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
Edozein izen sar dezakezu, baina saioarekin amaitu behar da bot.
Dena ondo egin baduzu, honako mezu hau jasoko duzu:
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
Ondoren jasotako API tokena beharko duzu, nire adibidean hala da 123456789:abcdefghijklmnopqrstuvwxyz.
Urrats honetan, bot-a sortzeko prestaketa-lana amaitu da.
Telegram bot batekin lan egiteko pakete bat instalatzea R-n
Suposatzen dut dagoeneko R hizkuntza eta RStudio garapen ingurunea instalatuta dituzula. Hau horrela ez bada, hau begiratu dezakezu bideo tutoriala nola instalatu.
Telegram Bot APIarekin lan egiteko R paketea erabiliko dugu telegrama.bot.
R-n paketeak instalatzea funtzioa erabiliz egiten da install.packages(), beraz, behar dugun paketea instalatzeko, erabili komandoa install.packages("telegram.bot").
Hainbat pakete instalatzeari buruz gehiago lor dezakezu bideo hau.
Paketea instalatu ondoren, konektatu behar duzu:
library(telegram.bot)
R-tik Telegram-era mezuak bidaltzen
Sortu duzun bot-a Telegramen aurki daiteke, sorreran zehaztutako saio-hasiera erabiliz, nire kasuan hala da @my_test_bot.
Bidali bot-ari edozein mezu, adibidez, "Hey bot". Momentuz, hau behar dugu bot-arekin zure txataren IDa lortzeko.
Hasieran, gure bot-aren instantzia bat sortzen dugu funtzioarekin Bot(), aurretik jasotako tokena argumentu gisa pasa behar da.
Ez da praktika ontzat hartzen tokena kodean gordetzea, beraz, ingurune-aldagai batean gorde dezakezu eta bertatik irakur dezakezu. Berez paketean telegram.bot Izen hauetako ingurune-aldagaietarako laguntza inplementatu da: R_TELEGRAM_BOT_ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π... Ordez ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π sortzerakoan zehaztu duzun izena ordezkatu, nire kasuan aldagai bat izango da R_TELEGRAM_BOT_My Test Bot.
Ingurune-aldagai bat sortzeko hainbat modu daude; Unibertsalena eta multiplataformaren berri emango dizut. Sortu zure etxeko direktorioan (komandoa erabiliz aurki dezakezu path.expand("~")) izena duen testu fitxategia .Inguruan. Hori ere egin dezakezu komandoa erabiliz file.edit(path.expand(file.path("~", ".Renviron"))).
Ondoren, ingurune-aldagaian gordetako tokena erabil dezakezu funtzioa erabiliz bot_token(), hau da. horrela:
bot <- Bot(token = bot_token("My Test Bot"))
ΠΠ΅ΡΠΎΠ΄ getUpdates()bot eguneraketak lortzeko aukera ematen digu, hau da. bidali zizkioten mezuak. Metodoa from_chat_id(), mezua bidali den txataren IDa lortzeko aukera ematen du. ID hau behar dugu bot-etik mezuak bidaltzeko.
Metodoak lortutako objektuaren txataren IDaz gain getUpdates() beste informazio erabilgarria ere jasotzen duzu. Adibidez, mezua bidali duen erabiltzaileari buruzko informazioa.
Beraz, fase honetan dagoeneko badugu bot batetik Telegram-era mezu bat bidaltzeko behar dugun guztia. Erabili dezagun metodoa sendMessage(), eta bertan txataren IDa, mezuaren testua eta mezuen testuaren markaketa mota pasa behar dituzu. Markdown mota Markdown edo HTML izan daiteke eta argumentuak ezartzen du parse_mode.
Jarraian, funtzioa erabiliz taskscheduler_ls() zereginei buruzko informazioa eskatzen dugu gure programatzaileari. Funtzioa erabiliz filter() paketetik dplyr Zereginen zerrendatik kentzen ditugu arrakastaz burututakoak eta azken emaitza 0-ko egoera dutenak, eta inoiz abiarazi ez direnak eta 267011-ko egoera dutenak, desgaitutako zereginak eta une honetan exekutatzen ari diren zereginak.
Goiko adibidea erabiltzean, ordezkatu zure bot tokena eta zure txataren ID kodea kodean.
Zereginak iragazteko baldintzak gehi ditzakezu, adibidez, zuk sortu dituzun zereginak soilik egiaztatuz, sistemakoak izan ezik.
Hainbat ezarpen ere jar ditzakezu bereizitako konfigurazio fitxategi batean eta bertan gorde txataren IDa eta tokena. Konfigurazioa irakur dezakezu, adibidez, paketea erabiliz configr.
Zereginen azterketak egiteko programazioa konfiguratzea
Programazio batean scriptak abiarazteko prozesua zehatzago deskribatzen da honetan Artikulu. Hemen horretarako jarraitu beharreko pausoak soilik deskribatuko ditut. Urratsetakoren bat argi ez baduzu, jo ezazu esteka bat eman dudan artikulua.
Demagun gure bot kodea fitxategi batean gorde dugula check_bot.R. Fitxategi hau aldizka exekutatzeko, jarraitu urrats hauek:
Idatzi Path sistemaren aldagaian R instalatuta dagoen karpetarako bidea; Windows-en, bidea honelakoa izango da: C:Program FilesRR-4.0.2bin.
Sortu bat fitxategi exekutagarri bat lerro bakarrarekin R CMD BATCH C:rscriptscheck_botcheck_bot.R. Ordezkatu C:rscriptscheck_botcheck_bot.R zure R fitxategirako bide osora.
Ondoren, erabili Windows Task Scheduler abiarazteko egutegia konfiguratzeko, adibidez, ordu erdiro.
Ondorioa
Artikulu honetan, bot bat nola sortu eta telegram-en hainbat jakinarazpen bidaltzeko erabiltzen asmatu dugu.
Windows Task Scheduler monitorizatzeko zeregina deskribatu nuen, baina artikulu honetako materiala erabil dezakezu edozein jakinarazpen bidaltzeko, eguraldiaren iragarpenetatik hasita burtsaren kotizazioetaraino, zeren eta R-k datu-iturri kopuru handi batera konektatzeko aukera ematen du.
Hurrengo artikuluan, komandoak eta teklatua bot-ari nola gehitu ikusiko dugu, jakinarazpenak bidaltzeaz gain, ekintza konplexuagoak ere egin ditzan.