Ukwakha i-Telegraph bot ku-Yandex.Cloud

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Namuhla, kusukela ezintweni ezilahliwe, sizohlangana I-Yandex.Cloud I-Telegram bot usebenzisa Imisebenzi ye-Yandex Cloud (noma Imisebenzi ye-Yandex - ngamafuphi) kanye I-Yandex Object Storage (noma Isitoreji sento - ukuze kucace). Ikhodi izovuleka I-Node.js. Kodwa-ke, kunesimo esisodwa esibalulekile - inhlangano ethile ebizwa, ake sithi, RossKomTsenzur (ukucwaninga kunqatshelwe Isigaba 29 soMthethosisekelo Wenhlangano YaseRussia), ayivumeli abahlinzeki be-inthanethi baseRussia ukuthi badlulisele izicelo I-Telegraph API ngekheli: https://api.telegram.org/. Hhayi-ke, ngeke - cha, cha. Phela esikhwameni sethu kukhona okuthiwa. ama-webhooks - Ngosizo lwabo, asenzi izicelo ekhelini elithile, kodwa sivele sithumele isicelo sethu njengempendulo kunoma yisiphi isicelo kithi. Okusho ukuthi, njengase-Odessa, siphendula umbuzo ngombuzo. Yingakho ke I-Telegraph API ngeke ivele kukhodi yethu.

Umusho wokuzihlangulaAmagama anoma yiziphi izinhlangano zikahulumeni ezishiwo kulesi sihloko angamanga, futhi ukufana okungenzeka namagama ezinhlangano eziphila ngokoqobo kwenzeka ngengozi.

Ngakho-ke, sizokwenza i-bot ezosinikeza imicabango ehlakaniphile. Kufana ncamashΓ­ nesithombe:

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Ungayizama ngokwenza - nali igama: @SmartThoughtsBot. Iqaphele inkinobho "Ikhono lika-Alice"? Lokhu kungenxa yokuthi i-bot iwuhlobo "lomngane" we-bot yegama elifanayo. Ikhono lika-Alice, i.e. yenza imisebenzi efanayo ne Ikhono lika-Alice futhi kungenzeka ukuthi bazokwazi ukuhlalisana ngokuthula ngokukhangisana. Mayelana nendlela yokudala ikhono Imicabango Ehlakaniphile echazwe esihlokweni U-Alice uthola ikhono. Manje (ngemuva kokwenza izinguquko ezithile ngemva kokushicilelwa kwesihloko esingenhla) ku-smartphone lokhu ikhono izobukeka kanje:

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Ukudala i-bot

Ngingathanda ukuthi lesi sifundo sibe usizo kuwo wonke umuntu, kuhlanganisa. kanye nabakhi be-novice bot. Ngakho-ke, kulesi sigaba ngizochaza ngokuningiliziwe indlela yokudala ngokujwayelekile yocingo'e bots. Kulabo abangaludingi lolu lwazi, qhubekela ezigabeni ezilandelayo.

Vula uhlelo lokusebenza I-Telegaram, asibize ubaba wabo bonke bots (banakho konke njengabantu) - @BotFather - futhi okokuqala sizomnika umyalo /usizo ukuze avuselele inkumbulo yakhe yalokho esingakwenza. Manje sizoba nentshisekelo eqenjini / newbot.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Njengoba i-bot echazwe lapha isivele idaliwe, ngokwezinjongo zokubonisa ngizodala enye i-bot isikhathi esifushane (bese ngiyisusa). Ngizomfonela I-DemoHabrBot. Amagama (igama lomsebenzisi) yawo wonke ama-telegram bots kufanele agcine ngegama I-botisibonelo: I-MyCoolBot noma ibhothi_yami_epholile - lokhu okwe-bots. Kepha okokuqala sinikeza igama le-bot (Igama) - futhi lokhu kungokwabantu. Igama lingaba kunoma yiluphi ulimi, liqukathe izikhala, futhi akufanele ligcine ngegama I-bot, futhi akudingeki nokuba ihluke. Kulesi sibonelo, ngibize le bot Idemo ye-Habr.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Manje khetha igama le-bot (igama lomsebenzisi, eye-bots). Asimbize I-DemoHabrBot. Konke okuhlobene negama le-bot (Igama) akuhlangene nhlobo negama lakhe - igama lomsebenzisi (noma kuyasebenza, kodwa okuphambene nalokho). Ngemva kokudala ngempumelelo igama le-bot eliyingqayizivele, sidinga ukukopisha futhi silondoloze (ngokuqiniseka okuqinile!) ithokheni eboniswe kusithombe-skrini esinomcibisholo obomvu. Ngosizo lwayo sizosungula kamuva okuvela kuyo yocingo'indaba yethu Umsebenzi we-Yandex.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Manje ake sinikeze umyalo kubaba wawo wonke ama-bots: /ama-mybots, futhi izosibonisa uhlu lwawo wonke ama-bots esiwadalile. Masiyishiye yodwa okwamanje i-bot esanda kubhakwa Idemo ye-Habr (yadalelwa ukukhombisa indlela yokudala ama-bots, kodwa sizoyisebenzisa namuhla ngezinye izinjongo zokubonisa), futhi ake sibheke i-bot. Imicabango Ehlakaniphile (@SmartThoughtsBot). Chofoza inkinobho enegama layo ohlwini lwama-bots.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Lapha singamisa i-bot yethu. Ngokucindezela inkinobho Hlela… Sizoqhubeka nokuhlela inketho eyodwa noma enye. Isibonelo, ngokuchofoza inkinobho Hlela igama singashintsha igama le-bot, esikhundleni salokho Imicabango Ehlakaniphile, bhala Crazy Ideas. I-Botpic - lena i-avatar ye-bot, kufanele ibe okungenani 150 x 150 px. Incazelo β€” lena incazelo emfushane ebonwa umsebenzisi uma eqala i-bot, njengempendulo yombuzo: Yini engayenza le bot? Mayelana - incazelo emfushane, edluliselwa ngesixhumanisi se-bot (https://t.me/SmartThoughtsBot) noma lapho ubheka ulwazi ngakho.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Okufanele sikwenze ukusetha imiyalo. Ukuze wenze lokhu, cindezela inkinobho Hlela Imiyalo. Ukumisa umkhuba womsebenzisi yocingo incoma ukuthi uhlale usebenzisa imiyalo emibili: / qala ΠΈ / Usizo, futhi uma i-bot idinga izilungiselelo, sebenzisa umyalo owengeziwe/wezilungiselelo. I-bot yethu ilula njengebhola, ngakho-ke ayikadingi izilungiselelo okwamanje. Sibhala imiyalo emibili yokuqala, esizoyicubungula ngekhodi. Manje, uma umsebenzisi efaka i-slash (uphawu lwe-slash: /) endaweni yokufaka, uhlu lwemiyalo luzovela ukuze kukhethwe ngokushesha. Konke kufana nesithombe: ngakwesobunxele - sifaka imiyalo nge-bot kababa; ngakwesokudla, le miyalo isivele itholakale kubasebenzisi ku-bot yethu.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Umsebenzi we-Yandex

Manje njengoba i-bot yethu isidaliwe, ake siye kuyo I-Yandex.Cloudukudala umsebenzi ozosebenzisa ikhodi yethu ye-bot. Uma ungazange usebenze I-Yandex.Cloud funda indaba U-Alice Ezweni Le-Bitrix, bese - Imisebenzi ye-Yandex ithumela i-imeyili. Ngiqinisekile ukuthi lezi zihloko ezimbili ezimfishane uma kuqhathaniswa zizokwanela ukuba ube nokuqonda okuyisisekelo kwesihloko.

Ngakho ku-console I-Yandex.Cloud kumenyu yesokunxele yokuzulazula khetha into Imisebenzi Yefu, bese ucindezela inkinobho Dala umsebenzi. Sinikeza igama kanye nencazelo emfushane ngathi.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Ngemva kokucindezela inkinobho Dala futhi ngemva kwemizuzwana embalwa, umsebenzi omusha uzovela ohlwini lwayo yonke imisebenzi. Chofoza egameni lakhe - lokhu kuzosiyisa ekhasini Uhlolojikelele umsebenzi wethu. Lapha udinga ukunika amandla (On) shintsha Umsebenzi womphakathiukuze ifinyeleleke kusuka ngaphandle (for I-Yandex.Cloud) zomhlaba, kanye nencazelo yamasimu Isixhumanisi sekholi ΠΈ I-ID - kugcine kuyimfihlo enkulu kuwo wonke umuntu ngaphandle kwakho kanye neTelegramu, ukuze umsebenzi wakho ungabizwa ngabakhwabanisi abahlukahlukene.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Manje, usebenzisa imenyu engakwesokunxele, yiya ku Umhleli imisebenzi. Ake sibeke eceleni isikhashana wethu Imicabango Ehlakaniphile, futhi udale umsebenzi wesifanekiso esincane ukuze uhlole ukusebenza kwe-bot yethu... Nokho, kulo mongo, lo msebenzi uyi-bot yethu... Ngamafuphi, manje futhi khona lapha sizokwenza i-bot elula ezokwenza "isibuko" ( i.e. send back ) izicelo zomsebenzisi. Lesi sifanekiso singasetshenziswa njalo lapho kwakhiwa ama-bots etelegram entsha ukuze kuqinisekiswe ukuthi ukuxhumana no I-Telegram'ohm isebenza kahle. Chofoza Dala ifayela,asiyibize index.js, futhi ku-inthanethi Umhleli wekhodi namathisela ikhodi elandelayo kuleli fayela:

module.exports.bot = async (event) => {
  
  const body = JSON.parse(event.body);

  const msg = {
    'method': 'sendMessage',
    'chat_id': body.message.chat.id,
    'text': body.message.text
  };

  return {
    'statusCode': 200,
    'headers': {
      'Content-Type': 'application/json'
    },
    'body': JSON.stringify(msg),
    'isBase64Encoded': false
  };
};

Kukhonsoli ye-Yandex.Cloud kufanele ibukeke kanje:

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Ngokuqhubekayo ngezansi sibonisa Indawo yokungena - index.botkuphi Inkomba leli igama lefayela (index.js), futhi I-bot - igama lomsebenzisi (module.exports.bot). Shiya zonke ezinye izinkambu njengoba zinjalo, bese uchofoza inkinobho ekhoneni eliphezulu kwesokudla Dala inguqulo. Emasekhondini ambalwa le nguqulo yomsebenzi izokwakhiwa. Ngokushesha ngemva kokuhlolwa webhook, sizodala inguqulo entsha - Imicabango Ehlakaniphile.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Isitoreji sento

Manje njengoba sesidale Umsebenzi we-Yandex, woza, sisaku-console I-Yandex.Cloud, asidale okuthiwa ibhakede (ibhakede, i.e. ibhakede ngesiRashiya, hhayi isixha nhlobo) sokugcina amafayela wesithombe azosetshenziswa ku-bot yethu Imicabango Ehlakaniphile. Kumenyu engakwesokunxele yokuzulazula khetha into Into Yokugcina, cindezela inkinobho Dala ibhakede, qhamuka negama layo, isibonelo, img-ibhakede, futhi, okubaluleke kakhulu, Funda ukufinyelela ezintweni Sikwenza kube sesidlangalaleni - ngaphandle kwalokho iTelegram ngeke ibone izithombe zethu. Sishiya zonke ezinye izinkambu zingashintshiwe. Cindezela inkinobho Dala ibhakede.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Ngemva kwalokhu, uhlu lwawo wonke amabhakede lungase lubukeke kanje (uma leli kuwukuphela kwebhakede lakho):

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Manje ngiphakamisa ukuchofoza egameni lebhakede bese udala ifolda ngaphakathi kwalo ukuze uhlele ukugcinwa kwezithombe zezinhlelo zakho zokusebenza ezahlukene. Isibonelo, nge-telegram bot Imicabango Ehlakaniphile Ngidale ifolda ebizwa ngokuthi tg-bot-smart-micabango (lutho, ngizoyiqonda le khodi). Dala eyodwa futhi.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Manje ungachofoza egameni lefolda, ungene kuyo futhi ulayishe amafayela:

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Futhi ngokuchofoza igama lefayela - lithole I-URL ukusetshenziswa ku-bot yethu, futhi ngokujwayelekile - noma kuphi (kodwa ungakushicileli lokhu I-URL okungadingekile, kusukela traffic kusuka Isitoreji sento icala).

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Yilokho kuphela okukhona kukho Isitoreji sento. Manje uzokwazi ukuthi yini okufanele uyenze uma ubona umyalo wokulayisha amafayela lapho.

Webhook

Manje sizofaka webhook - i.e. lapho i-bot ithola isibuyekezo (isibonelo, umlayezo ovela kumsebenzisi) ovela kuseva yocingo kwezethu Umsebenzi we-Yandex isicelo sizothunyelwa (isicelo) ngedatha. Nawu umugqa ongamane uwunamathisele endaweni yekheli lesiphequluli sakho bese uvuselela ikhasi (kufanele ukwenze lokhu kanye kuphela): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Sizovele siyishintshe {bot_token} kuphawu esiluthole ku-bot kababa lapho sidala i-bot yethu, futhi {webhook_url} - ku I-URL yethu Imisebenzi ye-Yandex. Linda umzuzu nje! Kodwa RossKomTsenzur wenqabela abahlinzeki baseRussian Federation ukuthi banikeze ikheli https://api.telegram.org. Yebo, kunjalo. Kodwa woza nokuthile. Phela, ungakwazi, isibonelo, ukubuza ugogo wakho ngalokhu e-Ukraine, Israel noma Canada - akukho "Rosskomcensorship" lapho, futhi uNkulunkulu uyazi kuphela ukuthi abantu baphila kanjani ngaphandle kwayo. Njengomphumela, impendulo yesicelo lapho ufaka i-webhook kufanele ibukeke kanje:

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Siyahlola. Kufanele "isibuko".

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Yiqiniso lokhu. Siyakuhalalisela - manje Umsebenzi we-Yandex waba yocingo-bot!

Imicabango Ehlakaniphile

Manje masenze Imicabango Ehlakaniphile. Ikhodi ivuliwe futhi ilele GitHub. Iphawulwe kahle futhi iyimigqa eyikhulu kuphela ubude. Ifunde njenge-opera diva libretto!

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Hlanganisa iphrojekthi bese ufaka okuncikile:

git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i

Yenza izinguquko ozidingayo kufayela index.js (uyazikhethela; akumele uguqule noma yini). Dala zip-ingobo yomlando, enefayela index.js kanye nefolda ama-node_modules ngaphakathi, isibonelo, ngaphansi kwegama smart.zip.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Manje hamba ku-console yethu Imisebenzi ye-Yandex, khetha ithebhu Ingobo yomlando ye-ZIP, cindezela inkinobho Khetha ifayela, bese ulanda ingobo yethu yomlando smart.zip. Ekugcineni, ekhoneni eliphezulu kwesokudla, chofoza inkinobho Dala inguqulo.

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Emizuzwaneni embalwa, lapho umsebenzi ubuyekezwa, sizohlola i-bot yethu futhi. Manje akasaziboni β€œizibuko”, kodwa uletha imicabango ehlakaniphile!

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Yilokho kuphela okwanamuhla. Izindatshana ezengeziwe ziyalandela. Uma ungathanda ukufunda lokhu, bhalisa ukuze uthole izaziso mayelana nama-athikili amasha. Ungabhalisa lapha, noma ku- yocingo-isiteshi Isifundo se-IT Zakhar, noma Twitter @mikezaharov.

izithenjwa

Ikhodi ku-GitHub
Imisebenzi ye-Yandex Cloud
I-Yandex Object Storage
Amabhothi: Isethulo sabathuthukisi
I-Telegram Bot API

Iminikelo

Ukwakha i-Telegraph bot ku-Yandex.Cloud

Source: www.habr.com

Engeza amazwana