ProHoster > blog > Gweinyddiaeth > Rydyn ni'n ysgrifennu bot telegram yn yr iaith R (rhan 1): Creu bot ac anfon negeseuon i telegram gan ei ddefnyddio
Rydyn ni'n ysgrifennu bot telegram yn yr iaith R (rhan 1): Creu bot ac anfon negeseuon i telegram gan ei ddefnyddio
Mae'r gynulleidfa telegram yn tyfu'n esbonyddol bob dydd, mae hyn yn cael ei hwyluso gan gyfleustra'r negesydd, argaeledd sianeli, sgyrsiau, ac wrth gwrs y gallu i greu bots.
Gellir defnyddio bots at amrywiaeth eang o ddibenion, o awtomeiddio cyfathrebu Γ’'ch cwsmeriaid i reoli eich tasgau eich hun.
Mewn gwirionedd, trwy'r bot, gallwch ddefnyddio telegram i gyflawni unrhyw weithrediad: anfon neu ofyn am ddata, rhedeg tasgau ar y gweinydd, casglu gwybodaeth mewn cronfa ddata, anfon e-byst, ac ati.
Rwy'n bwriadu ysgrifennu cyfres o erthyglau ar sut i weithio gydag R yn R. telegram bot API, ac ysgrifennu bots ar gyfer eich anghenion.
Yn yr erthygl gyntaf hon, byddwn yn darganfod sut i greu bot telegram ac anfon hysbysiadau i telegram gan ei ddefnyddio.
O ganlyniad, bydd gennym bot a fydd yn gwirio statws cyflawniad olaf yr holl dasgau yn y Windows Task Scheduler, ac yn anfon hysbysiadau atoch os bydd unrhyw fethiant.
Ond nid pwrpas y gyfres hon o erthyglau yw eich dysgu sut i ysgrifennu bot ar gyfer tasg benodol, gyfyng, ond yn hytrach eich cyflwyno i gystrawen y pecyn yn gyffredinol. telegram.bot, ac enghreifftiau cod y gallwch chi ysgrifennu bots Γ’ nhw i ddatrys eich problemau eich hun.
Cynnwys
Os oes gennych ddiddordeb mewn dadansoddi data, efallai y bydd gennych ddiddordeb yn fy telegram ΠΈ youtube sianeli. Mae'r rhan fwyaf o'r cynnwys wedi'i neilltuo i'r iaith R.
Yn gyntaf, mae angen i ni greu bot. Gwneir hyn gan ddefnyddio bot arbennig Tad Bot, mynd i cyswllt ac ysgrifenu at y bot /start.
Yna byddwch yn derbyn neges gyda rhestr o orchmynion:
Neges gan 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
I greu bot newydd, anfonwch y gorchymyn /newbot.
Bydd BotFather yn gofyn ichi nodi enw a mewngofnodi'r bot.
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
Gallwch nodi enw mympwyol, a rhaid i'r mewngofnodi ddod i ben gyda bot.
Os gwnaethoch bopeth yn gywir, byddwch yn derbyn y neges ganlynol:
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
Nesaf, bydd angen y tocyn API a dderbyniwyd arnoch, yn fy enghraifft i ydyw 123456789:abcdefghijklmnopqrstuvwxyz.
Ar y cam hwn, mae'r gwaith paratoi ar gyfer creu'r bot wedi'i gwblhau.
Gosod pecyn ar gyfer gweithio gyda bot telegram ar R
Rwy'n cymryd bod yr iaith R wedi'i gosod yn barod a'r amgylchedd datblygu RStudio. Os nad yw hyn yn wir, yna gallwch edrych ar hyn tiwtorial fideo ar sut i'w gosod.
I weithio gyda'r Telegram Bot API, byddwn yn defnyddio'r pecyn R telegram.bot.
Mae gosod pecynnau yn R yn cael ei wneud gan y swyddogaeth install.packages(), felly i osod y pecyn sydd ei angen arnom, defnyddiwch y gorchymyn install.packages("telegram.bot").
Am ragor o wybodaeth am osod pecynnau amrywiol, gweler y fideo hwn.
Ar Γ΄l gosod y pecyn, mae angen i chi ei gysylltu:
library(telegram.bot)
Anfon negeseuon o R i Telegram
Gellir dod o hyd i'r bot a grΓ«wyd gennych yn Telegram gan ddefnyddio'r mewngofnodi a nodwyd yn ystod y creu, yn fy achos i @my_test_bot.
Anfonwch unrhyw neges i'r bot, fel "Hi bot". Ar hyn o bryd, mae angen hwn arnom er mwyn cael id eich sgwrs gyda'r bot.
I ddechrau, rydyn ni'n creu enghraifft o'n bot gyda'r swyddogaeth Bot(), fel dadl, rhaid i chi drosglwyddo'r tocyn a dderbyniwyd yn flaenorol iddo.
Ystyrir bod storio'r tocyn mewn cod yn arfer gwael, felly gallwch ei storio mewn newidyn amgylchedd a'i ddarllen ohono. Yn ddiofyn yn y pecyn telegram.bot gweithredu cefnogaeth ar gyfer newidynnau amgylchedd o'r enw canlynol: R_TELEGRAM_BOT_ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π... Yn lle ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π rhodder yr enw a osodwyd gennych wrth greu, yn fy achos i, bydd yn newidyn R_TELEGRAM_BOT_My Test Bot.
Gallwch greu newidyn amgylchedd mewn sawl ffordd, byddaf yn siarad am y mwyaf cyffredinol a thraws-lwyfan. Creu yn eich cyfeiriadur cartref (gallwch ddod o hyd iddo gyda'r gorchymyn path.expand("~")) ffeil testun gyda'r enw .Renviron. Gallwch hefyd wneud hyn gyda'r gorchymyn file.edit(path.expand(file.path("~", ".Renviron"))).
Yna gallwch chi ddefnyddio'r tocyn sydd wedi'i storio yn y newidyn amgylchedd gyda'r swyddogaeth bot_token(), h.y. fel hyn:
bot <- Bot(token = bot_token("My Test Bot"))
Dull getUpdates()yn ein galluogi i gael diweddariadau bot, h.y. negeseuon a anfonwyd ato. Dull from_chat_id(), yn eich galluogi i gael ID y sgwrs yr anfonwyd y neges ohoni. Mae angen y dynodwr hwn i anfon negeseuon o'r bot.
Yn ogystal Γ’'r ID sgwrsio o'r gwrthrych a dderbyniwyd gan y dull getUpdates() rydych chi'n cael rhywfaint o wybodaeth ddefnyddiol arall hefyd. Er enghraifft, gwybodaeth am y defnyddiwr a anfonodd y neges.
Felly, ar hyn o bryd, mae gennym ni eisoes bopeth sydd ei angen i anfon neges o'r bot i telegram. Gadewch i ni ddefnyddio'r dull sendMessage(), y mae angen i chi basio ID sgwrs, testun neges, a math marcio testun y neges. Gall y math marcio fod yn Markdown neu HTML ac fe'i gosodir gan y ddadl parse_mode.
Mae'r ffont gofod sefydlog, a ddefnyddir fel arfer i amlygu cod rhaglen, yn cael ei nodi gan ddefnyddio collnodau - `:
enghraifft: `ffont monospace`
canlyniad: ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
Hanfodion fformatio marcio HTML:
Yn HTML, rydych chi'n lapio'r rhan o'r testun rydych chi am ei amlygu mewn tagiau, er enghraifft <ΡΠ΅Π³>ΡΠ΅ΠΊΡΡ</ΡΠ΅Π³>.
<tag> β tag agoriadol
- tag cau
Tagiau marcio HTML
<b> - ffont beiddgar
Enghraifft: <b>ΠΆΠΈΡΠ½ΡΠΉ ΡΡΠΈΡΡ</b>
arwain ffont beiddgar
<i> - italig
Enghraifft: <i>ΠΊΡΡΡΠΈΠ²</i>
canlyniad: italig
β ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
enghraifft: ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
canlyniad: ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
Yn ogystal Γ’ thestun, gallwch anfon cynnwys arall gan ddefnyddio dulliau arbennig:
Nesaf, gan ddefnyddio'r swyddogaeth taskscheduler_ls() rydym yn gofyn am wybodaeth am dasgau gan ein trefnydd. Gan ddefnyddio'r swyddogaeth filter() o'r pecyn dplyr rydym yn tynnu o'r rhestr o dasgau y rhai a gwblhawyd yn llwyddiannus ac sydd Γ’ statws canlyniad diwethaf o 0, a'r rhai nad ydynt erioed wedi'u rhedeg eto ac sydd Γ’ statws 267011, tasgau anabl, a thasgau sy'n rhedeg ar hyn o bryd.
Wrth ddefnyddio'r enghraifft uchod, amnewidiwch eich tocyn bot a'ch ID sgwrs yn y cod.
Gallwch ychwanegu amodau hidlo tasg, er enghraifft, gwirio dim ond y tasgau hynny a grΓ«wyd gennych chi, ac eithrio rhai system.
Gallwch hefyd roi gosodiadau amrywiol mewn ffeil ffurfweddu ar wahΓ’n, a storio'r ID sgwrsio a'r tocyn ynddo. Gallwch ddarllen y config, er enghraifft, gan ddefnyddio'r pecyn configr.
Disgrifir y broses o ffurfweddu lansiad sgript a drefnwyd yn fanylach yn hyn Erthygl. Yma ni fyddaf ond yn disgrifio'r camau y mae'n rhaid eu dilyn ar gyfer hyn. Os nad yw unrhyw un o'r camau yn glir i chi, yna cyfeiriwch at yr erthygl y rhoddais ddolen iddi.
Gadewch i ni ddweud ein bod yn arbed ein cod bot i ffeil check_bot.R. I drefnu bod y ffeil hon yn rhedeg yn rheolaidd, dilynwch y camau hyn:
Ysgrifennwch y llwybr i'r ffolder y mae R wedi'i osod ynddo yn y newidyn system Path, ar Windows bydd y llwybr yn rhywbeth fel hyn: C:Program FilesRR-4.0.2bin.
Creu ffeil ystlumod gweithredadwy gydag un llinell yn unig R CMD BATCH C:rscriptscheck_botcheck_bot.R. Amnewid C:rscriptscheck_botcheck_bot.R i'r llwybr llawn i'ch ffeil R.
Nesaf, defnyddiwch y Windows Task Scheduler i osod amserlen gychwyn, er enghraifft, bob hanner awr.
Casgliad
Yn yr erthygl hon, fe wnaethon ni ddarganfod sut i greu bot a'i ddefnyddio i anfon amrywiol hysbysiadau i telegram.
Disgrifiais y dasg o fonitro'r Windows Task Scheduler, ond gallwch ddefnyddio'r deunydd yn yr erthygl hon i anfon unrhyw hysbysiad, o ragolygon y tywydd i ddyfynbrisiau stoc ar y gyfnewidfa stoc, oherwydd. Mae R yn caniatΓ‘u ichi gysylltu Γ’ nifer enfawr o ffynonellau data.
Yn yr erthygl nesaf, byddwn yn darganfod sut i ychwanegu gorchmynion a bysellfwrdd at y bot fel y gall nid yn unig anfon hysbysiadau, ond hefyd gyflawni gweithredoedd mwy cymhleth.