ProHoster > blog > Utawala > Kuandika boti ya telegramu katika R (sehemu ya 1): Kuunda roboti na kuitumia kutuma ujumbe kwa telegramu
Kuandika boti ya telegramu katika R (sehemu ya 1): Kuunda roboti na kuitumia kutuma ujumbe kwa telegramu
Hadhira ya Telegram inakua kwa kasi kila siku, hii inawezeshwa na urahisi wa mjumbe, uwepo wa njia, mazungumzo, na bila shaka uwezo wa kuunda roboti.
Boti zinaweza kutumika kwa madhumuni tofauti kabisa, kutoka kwa mawasiliano ya kiotomatiki na wateja wako hadi kudhibiti majukumu yako mwenyewe.
Kimsingi, unaweza kutumia telegramu kufanya shughuli zozote kupitia bot: kutuma au kuomba data, kuendesha kazi kwenye seva, kukusanya taarifa kwenye hifadhidata, kutuma barua pepe, na kadhalika.
Ninapanga kuandika mfululizo wa makala kuhusu jinsi ya kufanya kazi nayo telegram bot API, na uandike roboti ili kukidhi mahitaji yako.
Katika nakala hii ya kwanza tutagundua jinsi ya kuunda bot ya telegraph na kuitumia kutuma arifa kwenye telegraph.
Kwa hivyo, tutakuwa na bot ambayo itaangalia hali ya utekelezaji wa mwisho wa kazi zote kwenye Kipanga Kazi cha Windows, na kukutumia arifa ikiwa yoyote kati yao imeshindwa.
Lakini madhumuni ya safu hii ya vifungu sio kukufundisha jinsi ya kuandika bot kwa kazi maalum, nyembamba, lakini kwa ujumla kukutambulisha kwa syntax ya kifurushi. telegram.bot, na mifano ya nambari ambayo unaweza kuandika roboti kutatua shida zako mwenyewe.
yaliyomo
Ikiwa una nia ya uchambuzi wa data, unaweza kupendezwa na yangu telegram ΠΈ youtube njia. Maudhui mengi yamejitolea kwa lugha ya R.
Kwanza, tunahitaji kuunda bot. Hii inafanywa kwa kutumia bot maalum BotBaba, enda kwa kiungo na uandike kwa bot /start.
Baada ya hapo utapokea ujumbe na orodha ya amri:
Ujumbe kutoka kwa 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
Ili kuunda bot mpya, tuma amri /newbot.
BotFather itakuuliza uweke jina la bot na uingie.
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
Unaweza kuingiza jina lolote, lakini kuingia lazima kumalizike bot.
Ikiwa ulifanya kila kitu kwa usahihi, utapokea ujumbe ufuatao:
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
Ifuatayo utahitaji ishara ya API iliyopokelewa, kwa mfano wangu ni 123456789:abcdefghijklmnopqrstuvwxyz.
Katika hatua hii, kazi ya maandalizi ya kuunda bot imekamilika.
Kufunga kifurushi cha kufanya kazi na bot ya telegraph katika R
Nadhani tayari unayo lugha ya R na mazingira ya ukuzaji wa RStudio yaliyosanikishwa. Ikiwa hii sio kesi, basi unaweza kuangalia hii mafunzo ya video jinsi ya kuziweka.
Kufanya kazi na API ya Telegram Bot tutatumia kifurushi cha R telegram.bot.
Kufunga vifurushi katika R hufanywa kwa kutumia kazi install.packages(), kwa hivyo kufunga kifurushi tunachohitaji, tumia amri install.packages("telegram.bot").
Unaweza kujifunza zaidi kuhusu kusakinisha vifurushi mbalimbali kutoka video hii.
Baada ya kusanikisha kifurushi, unahitaji kuiunganisha:
library(telegram.bot)
Inatuma ujumbe kutoka R hadi Telegram
Kijibu ulichounda kinaweza kupatikana kwenye Telegraph kwa kutumia kuingia maalum wakati wa uundaji, kwa upande wangu ni @my_test_bot.
Tuma kijibu ujumbe wowote, kama vile "Hey bot." Kwa sasa, tunahitaji hii ili kupata kitambulisho cha gumzo lako na roboti.
Hapo awali, tunaunda mfano wa bot yetu na kazi Bot(), ishara iliyopokelewa hapo awali lazima ipitishwe ndani yake kama hoja.
Haizingatiwi kuwa mazoea bora kuhifadhi ishara katika nambari, kwa hivyo unaweza kuihifadhi katika muundo wa mazingira na kuisoma kutoka kwayo. Kwa chaguo-msingi katika kifurushi telegram.bot Usaidizi wa vibadilishio vya mazingira vya majina yafuatayo umetekelezwa: R_TELEGRAM_BOT_ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π... Badala ya ΠΠΠ―_ΠΠΠ¨ΠΠΠ_ΠΠΠ’Π badilisha jina ulilotaja wakati wa kuunda, kwa upande wangu litakuwa la kutofautisha R_TELEGRAM_BOT_My Test Bot.
Kuna njia kadhaa za kuunda utofauti wa mazingira; Nitakuambia juu ya ulimwengu wote na jukwaa la msalaba. Unda kwenye saraka yako ya nyumbani (unaweza kuipata kwa kutumia amri path.expand("~")) faili ya maandishi yenye jina .Renviron. Unaweza pia kufanya hivyo kwa kutumia amri file.edit(path.expand(file.path("~", ".Renviron"))).
Ifuatayo, unaweza kutumia ishara iliyohifadhiwa kwenye utofauti wa mazingira kwa kutumia chaguo la kukokotoa bot_token(), i.e. kama hii:
bot <- Bot(token = bot_token("My Test Bot"))
Mbinu getUpdates()inaturuhusu kupata sasisho za bot, i.e. jumbe ambazo zilitumwa kwake. Njia from_chat_id(), hukuruhusu kupata kitambulisho cha gumzo ambalo ujumbe ulitumwa. Tunahitaji kitambulisho hiki ili kutuma ujumbe kutoka kwa roboti.
Mbali na kitambulisho cha gumzo kutoka kwa kitu kilichopatikana kwa njia getUpdates() pia unapokea taarifa nyingine muhimu. Kwa mfano, habari kuhusu mtumiaji aliyetuma ujumbe.
Kwa hiyo, katika hatua hii tayari tuna kila kitu tunachohitaji kutuma ujumbe kutoka kwa bot hadi Telegram. Hebu tumia mbinu sendMessage(), ambamo unahitaji kupitisha kitambulisho cha gumzo, maandishi ya ujumbe, na aina ya maandishi ya maandishi. Aina ya markup inaweza kuwa Markdown au HTML na imewekwa na hoja parse_mode.
Fonti ya nafasi moja, ambayo kwa kawaida hutumiwa kuangazia msimbo wa programu, imebainishwa kwa kutumia viapostrofi - `:
mfano: `fonti ya nafasi moja`
matokeo: ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
Misingi ya uundaji wa alama za HTML:
Katika HTML, unafunga sehemu ya maandishi ambayo inahitaji kuangaziwa katika vitambulisho, kwa mfano <ΡΠ΅Π³>ΡΠ΅ΠΊΡΡ</ΡΠ΅Π³>.
<tag> - kufungua lebo
- alama ya kufunga
Lebo za alama za HTML
<b> - fonti ya ujasiri
mfano: <b>ΠΆΠΈΡΠ½ΡΠΉ ΡΡΠΈΡΡ</b>
matokeo herufi nzito
<i> - italiki
mfano: <i>ΠΊΡΡΡΠΈΠ²</i>
matokeo: italiki
β ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
mfano: ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
matokeo: ΠΌΠΎΠ½ΠΎΡΠΈΡΠΈΠ½Π½ΡΠΉ ΡΡΠΈΡΡ
Mbali na maandishi, unaweza kutuma maudhui mengine kwa kutumia mbinu maalum:
Ifuatayo, kwa kutumia kazi taskscheduler_ls() tunaomba maelezo kuhusu kazi kutoka kwa mratibu wetu. Kwa kutumia kipengele filter() kutoka kwa kifurushi dplyr Tunaondoa kutoka kwenye orodha ya kazi zile ambazo zilikamilishwa kwa ufanisi na kuwa na hali ya matokeo ya mwisho ya 0, na zile ambazo hazijawahi kuzinduliwa na zina hadhi ya 267011, kazi za walemavu, na kazi zinazoendeshwa kwa sasa.
Unapotumia mfano ulio hapo juu, badilisha tokeni yako ya roboti na kitambulisho chako cha gumzo kwenye msimbo.
Unaweza kuongeza masharti ya kazi za kuchuja, kwa mfano, kuangalia kazi hizo tu ambazo umeunda, ukiondoa zile za mfumo.
Unaweza pia kuweka mipangilio mbalimbali katika faili tofauti ya usanidi, na kuhifadhi kitambulisho cha gumzo na ishara ndani yake. Unaweza kusoma usanidi, kwa mfano, kwa kutumia kifurushi configr.
Mchakato wa kuanzisha uzinduzi wa maandiko kwenye ratiba umeelezwa kwa undani zaidi katika hili Ibara ya. Hapa nitaelezea tu hatua zinazohitajika kufuatwa kwa hili. Ikiwa hatua yoyote haijulikani kwako, basi rejea kwenye makala ambayo nilitoa kiungo.
Hebu tuchukulie kwamba tulihifadhi nambari yetu ya roboti kwenye faili check_bot.R. Ili kuratibu faili hii kufanya kazi mara kwa mara, fuata hatua hizi:
Andika njia ya folda ambayo R imewekwa kwenye utofauti wa mfumo wa Njia; katika Windows, njia itakuwa kitu kama hiki: C:Program FilesRR-4.0.2bin.
Unda faili ya popo inayoweza kutekelezwa na mstari mmoja tu R CMD BATCH C:rscriptscheck_botcheck_bot.R. Badilisha C:rscriptscheck_botcheck_bot.R kwa njia kamili ya faili yako ya R.
Ifuatayo, tumia Mpangilio wa Task wa Windows ili kusanidi ratiba ya uzinduzi, kwa mfano, kila nusu saa.
Hitimisho
Katika nakala hii, tuligundua jinsi ya kuunda bot na kuitumia kutuma arifa mbali mbali kwenye telegraph.
Nilielezea kazi ya ufuatiliaji wa Mpangilio wa Kazi ya Windows, lakini unaweza kutumia nyenzo katika makala hii kutuma arifa zozote, kutoka kwa utabiri wa hali ya hewa hadi nukuu za hisa kwenye soko la hisa, kwa sababu. R hukuruhusu kuungana na idadi kubwa ya vyanzo vya data.
Katika makala inayofuata, tutajua jinsi ya kuongeza amri na kibodi kwenye bot ili sio tu kutuma arifa, lakini pia kufanya vitendo ngumu zaidi.