Ukwakha i-Telegram bot kwiYandex.Cloud

Ukwakha i-Telegram bot kwiYandex.Cloud

Namhlanje, ukusuka kwizinto ezilahliweyo, siya kuhlanganisana Yandex.Cloud Ibhot yeTelegram usebenzisa Yandex Cloud Imisebenzi (okanye Imisebenzi yeYandex - ngokufutshane) kunye Yandex Into yokugcina (okanye Ukugcinwa kwento - ukuze kucace). Ikhowudi iya kuvulwa Node.js. Nangona kunjalo, kukho imeko enye ebalulekileyo-umbutho othile obizwa ngokuba, masithi, RossKomTsenzur (i-censorship inqatshelwe kwiSiqendu 29 soMgaqo-siseko weRussian Federation), ayivumeli ababoneleli be-Intanethi baseRashiya ukuba bathumele izicelo Telegram API kwidilesi: https://api.telegram.org/. Ewe, asiyi - hayi, hayi. Ngapha koko, kwibhegi yethu kukho okubizwa ngokuba. iiwebhooks β€” ngoncedo lwabo, asenzi izicelo kwidilesi ethile, kodwa sithumele nje isicelo sethu njengempendulo kuso nasiphi na isicelo kuthi. Oko kukuthi, njengase-Odessa, siphendula umbuzo ngombuzo. Kunjalo ngoba Telegram API ayizukuvela kwikhowudi yethu.

UkuzihlangulaAmagama ayo nayiphi na imibutho karhulumente ekhankanywe kweli nqaku ayibuvuvu, yaye kusenokwenzeka ukuba afanelana namagama emibutho yokwenene ayenzeka ngamabona-ndenzile.

Ke, siya kwenza i-bot eya kusinika iingcinga ezikrelekrele. Kanye njengakumfanekiso:

Ukwakha i-Telegram bot kwiYandex.Cloud

Ungayizama ngesenzo-nali igama: @SmartThoughtsBot. Qaphela iqhosha "Ubuchule bukaAlice"? Oku kungenxa yokuba i-bot luhlobo "lweqabane" lebhot yegama elifanayo. Isakhono sikaAlice, o.k. yenza imisebenzi efanayo Isakhono sikaAlice yaye kusenokwenzeka ukuba baya kukwazi ukuhlalisana ngoxolo ngokuthengisana. Malunga nendlela yokudala ubuchule Iingcinga ezikrelekrele echazwe kwinqaku UAlice ufumana isakhono. Ngoku (emva kokwenza utshintsho emva kokupapashwa kwenqaku elingasentla) kwi-smartphone oku isakhono iya kujongeka ngolu hlobo:

Ukwakha i-Telegram bot kwiYandex.Cloud

Ukwenza ibhot

Ndingathanda esi sifundo sibe luncedo kumntu wonke, kubandakanywa. kunye nabakhi be-novice bot. Ngoko ke, kweli candelo ndiya kuchaza ngokweenkcukacha indlela yokudala ngokubanzi yocingo'e bots. Kwabo bangayifuniyo le ngcaciso, qhubeka uye kula macandelo alandelayo.

Vula usetyenziso Telegaram, masibize utata wazo zonke i-bots (zinayo yonke into njengabantu) - @BotFather -kwaye kuqala siya kumnika /uncedo umyalelo wokuhlaziya inkumbulo yakhe yoko sinokukwenza. Ngoku siya kuba nomdla kwiqela / entsha.

Ukwakha i-Telegram bot kwiYandex.Cloud

Ekubeni i-bot echazwe apha sele yenziwe, ngeenjongo zokubonisa ndiza kudala enye i-bot ixesha elifutshane (kwaye ndiyicime). Ndizakumfowunela IdemoHabrBot. Amagama (lomsebenzisi) yazo zonke iibhothi zetelegram maziphele ngegama Bot, umzekelo: MyCoolBot okanye my_cool_bot - oku kungenxa yebhotshi. Kodwa kuqala sinika ibhot igama (igama) - kwaye oku kungenxa yabantu. Igama linokuba kulo naluphi na ulwimi, liqulathe izithuba, kwaye akufuneki liphele ngegama Bot, kwaye akuyomfuneko ukuba ibe yodwa. Kulo mzekelo, ndibize le bot Umboniso weHabr.

Ukwakha i-Telegram bot kwiYandex.Cloud

Ngoku khetha igama lebhot (lomsebenzisi, eyebhots). Masimbize IdemoHabrBot. Yonke into enxulumene negama le-bot (igama) ayidibani negama lakhe kwaphela - lomsebenzisi (okanye iyasebenza, kodwa ngokuchaseneyo). Emva kokwenza ngempumelelo igama elikhethekileyo le-bot, kufuneka sikopishe kwaye sigcine (ngokuzithemba okungqongqo!) Umqondiso oboniswe kwiskrini esinotolo olubomvu. Ngoncedo lwayo siya kuthi kamva siseke imvelaphi yocingo'ingxaki yethu Umsebenzi weYandex.

Ukwakha i-Telegram bot kwiYandex.Cloud

Ngoku masinike umyalelo kuyise wazo zonke iibhothi: /mybots, kwaye iya kusibonisa uluhlu lwazo zonke iibhothi esizenzileyo. Masiyiyeke okwangoku ibot esanda kubhakwa Umboniso weHabr (yadalwa ukubonisa indlela yokwenza iibhothi, kodwa siya kuyisebenzisa namhlanje kwezinye iinjongo zokubonisa), kwaye makhe sijonge ibhoti. Iingcinga ezikrelekrele (@SmartThoughtsBot). Cofa iqhosha elinegama layo kuluhlu lwe-bots.

Ukwakha i-Telegram bot kwiYandex.Cloud

Apha sinokuyiqwalasela ibhot yethu. Ngokucofa iqhosha Hlela… Siza kudlulela ekuhleleni enye okanye enye inketho. Umzekelo, ngokucofa iqhosha Hlela igama singatshintsha igama lebhot, yithi endaweni yoko Iingcinga ezikrelekrele, bhala Iingcamango eziphambeneyo. Botpic - le yi-avatar ye-bot, kufuneka ibe ubuncinane I-150 x 150 px. inkcazelo - le yinkcazo emfutshane ebonwa ngumsebenzisi xa eqala i-bot okokuqala, njengempendulo yombuzo: Ingenza ntoni le bot? malunga -inkcazo emfutshane, ehanjiswa ngekhonkco kwi-bot (https://t.me/SmartThoughtsBot) okanye xa ujonge ulwazi malunga nayo.

Ukwakha i-Telegram bot kwiYandex.Cloud

Into ekufuneka siyenzile kukuseka imiyalelo. Ukwenza oku, cofa iqhosha Hlela imiyalelo. Ukumisela inkqubo yabasebenzisi yocingo Icebisa ukuba isoloko isebenzisa imiyalelo emibini: / qala ΠΈ / Nceda, kwaye ukuba i-bot ifuna useto, sebenzisa umyalelo owongezelelweyo/woseto. Ibhot yethu ilula njengebhola, ke ayisafuni naluphi na useto okwangoku. Sibhala imiyalelo emibini yokuqala, esiya kuthi emva koko siyiqhube ngekhowudi. Ngoku, ukuba umsebenzisi ufaka i-slash (uphawu lwe-slash: /) kwindawo yokufaka, uluhlu lwemiyalelo luya kuvela ukuze lukhethwe ngokukhawuleza. Yonke into ifana nomfanekiso: ngakwesobunxele - sifaka imiyalelo nge-bot bot; ekunene, le miyalelo sele ikhona kubasebenzisi kwi-bot yethu.

Ukwakha i-Telegram bot kwiYandex.Cloud

Umsebenzi weYandex

Ngoku ukuba ibhot yethu yenziwe, masiye kuyo Yandex.Cloudukwenza umsebenzi ozakwenza ikhowudi yethu yebhot. Ukuba awuzange usebenze kunye Yandex.Cloud funda umbandela UAlice kwiLizwe leBitrix, ke ngoku - Imisebenzi yeYandex ithumela imeyile. Ndiqinisekile ukuba la manqaku mabini mafutshane ngokwentelekiso aya kukwanela ukuba ube nolwazi olusisiseko ngalo mbandela.

Ngoko kwi-console Yandex.Cloud kwimenyu yokukhangela ekhohlo khetha umba Imisebenzi yefu, kwaye emva koko ucofe iqhosha Yenza umsebenzi. Siyinika igama kunye nenkcazo emfutshane yethu.

Ukwakha i-Telegram bot kwiYandex.Cloud

Emva kokucinezela iqhosha Yenza kwaye emva kwemizuzwana embalwa, umsebenzi omtsha uya kuvela kuluhlu lwayo yonke imisebenzi. Cofa kwigama lakhe - oku kuya kusibeka ephepheni isishwankathelo umsebenzi wethu. Apha kufuneka wenze (On) tshintsha Umsebenzi woluntuukuze ibe nokufikeleleka ukusuka ngaphandle (for Yandex.Cloud) yehlabathi, kunye nentsingiselo yamasimi Ikhonkco lokufowuna ΠΈ Isazisi -yigcine iyimfihlo enkulu kuye wonke umntu ngaphandle kwakho kunye neTelegram, ukuze umsebenzi wakho ungabizwa ngabarhwebi abahlukeneyo.

Ukwakha i-Telegram bot kwiYandex.Cloud

Ngoku, usebenzisa imenyu esekhohlo, yiya ku Umhleli imisebenzi. Makhe sibeke ecaleni umzuzwana wethu Iingcinga ezikrelekrele, kwaye udale umsebenzi omncinci we-template ukujonga ukusebenza kwe-bot yethu ... Nangona kunjalo, kulo mongo, lo msebenzi yi-bot yethu ... Ngamafutshane, ngoku kwaye apha siza kwenza ibhoti elula eya "isibuko" () oko kukuthi thumela umva ) izicelo zomsebenzisi. Le template ingasoloko isetyenziswa xa usenza entsha telegram bots ukuqinisekisa ukuba unxibelelwano kunye Telegram'ohm isebenza kakuhle. Cofa Yenza ifayile, masiyibize index.js, kunye ne-intanethi Umhleli wekhowudi coma ikhowudi elandelayo kule fayile:

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
  };
};

Kwi-Yandex.Cloud console kufuneka ijonge into enje:

Ukwakha i-Telegram bot kwiYandex.Cloud

Ngaphezulu apha ngezantsi sibonisa Indawo yokungena - index.botphi isalathisi eli ligama lefayile (index.js), kunye Bot - igama lomsebenzi (imodyuli.exports.bot). Shiya zonke ezinye iindawo njengoko zinjalo, kwaye ucofe iqhosha kwikona ephezulu ngasekunene Yenza inguqulelo. Kwimizuzwana embalwa olu guqulelo lomsebenzi luyakwenziwa. Kungekudala emva kovavanyo webhook, siya kwenza inguqulelo entsha βˆ’ Iingcinga ezikrelekrele.

Ukwakha i-Telegram bot kwiYandex.Cloud

Ukugcinwa kwento

Ngoku ukuba senze Umsebenzi weYandex, yiza, ngelixa sikwi-console Yandex.Cloud, makhe sidale into ebizwa iemele (ibhakethi, o.k. ibhakethi ngesiRashiya, hayi isipha konke konke) yokugcina iifayile zomfanekiso eziya kusetyenziswa kwibhoti yethu. Iingcinga ezikrelekrele. Kwimenyu yokukhangela ekhohlo khetha into Ukugcinwa Kwezinto, cofa iqhosha Yenza ibhakethi, yiza negama layo, umzekelo, img-emelekwaye, okona kubalulekileyo, Ukufunda ukufikelela kwizinto Siyenza esidlangalaleni - kungenjalo iTelegram ayiyi kuyibona imifanekiso yethu. Sishiya zonke ezinye iindawo zingatshintshanga. Cofa iqhosha Yenza ibhakethi.

Ukwakha i-Telegram bot kwiYandex.Cloud

Emva koku, uluhlu lwazo zonke iibhakethi zinokujongeka ngolu hlobo (ukuba le libhakethi lakho kuphela):

Ukwakha i-Telegram bot kwiYandex.Cloud

Ngoku ndicebisa ukucofa igama lebhakethi kwaye wenze ifolda ngaphakathi kuyo ukuze uququzelele ukugcinwa kwemifanekiso kwizicelo zakho ezahlukeneyo. Umzekelo, kwi-telegram bot Iingcinga ezikrelekrele Ndenze ifolda ebizwa tg-bot-smart-ingcinga (akukho nto, ndiya kuqonda le khowudi). Yenza enye kwakhona.

Ukwakha i-Telegram bot kwiYandex.Cloud

Ngoku unokucofa kwigama lefolda, ungene kuyo kwaye ulayishe iifayile:

Ukwakha i-Telegram bot kwiYandex.Cloud

Kwaye ngokunqakraza kwigama lefayile - yifumane URL yokusetyenziswa kwi-bot yethu, kwaye ngokubanzi - naphi na (kodwa ungapapashi oku URL ngokungeyomfuneko, ukususela traffic ukusuka Ukugcinwa kwento ityala).

Ukwakha i-Telegram bot kwiYandex.Cloud

Yiloo nto kuphela ekhoyo kuyo Ukugcinwa kwento. Ngoku uya kuyazi into omawuyenze xa ubona umyalezo wokufaka iifayile apho.

Webhook

Ngoku siza kufaka webhook - okt. xa i-bot ifumana uhlaziyo (umzekelo, umyalezo osuka kumsebenzisi) ovela kumncedisi yocingo kwethu Umsebenzi weYandex isicelo siya kuthunyelwa (isicelo) ngedatha. Nanku umgca onokuthi uwuncamathelise ngokulula kwindawo yedilesi yesikhangeli sakho kwaye emva koko uhlaziye iphepha (kufuneka wenze oku kube kanye kuphela): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Siza kuyibuyisela {bot_umqondiso} kumqondiso esiwufumene kutata bot xa sidala ibhot yethu, kunye {webhook_url} -ukuqhubeka URL bethu Imisebenzi yeYandex. Linda umzuzu! Kodwa RossKomTsenzur uvimbela ababoneleli kwi-Russian Federation ukuba bakhonze idilesi https://api.telegram.org. Ewe oko kulungile. Kodwa yiza nento. Emva kwakho konke, unako, umzekelo, ukubuza ugogo wakho malunga nale nto e-Ukraine, kwaSirayeli okanye eCanada - akukho "Rosskomcensorship" apho, kwaye uThixo uyazi kuphela indlela abantu abaphila ngayo ngaphandle kwayo. Ngenxa yoko, isicelo-impendulo xa ufaka i-webhook kufuneka ijongeke ngolu hlobo:

Ukwakha i-Telegram bot kwiYandex.Cloud

Siyavavanya. Kufuneka "isipili".

Ukwakha i-Telegram bot kwiYandex.Cloud

Lena Yinyaniso. Siyavuyisana nathi ngoku Umsebenzi weYandex sele yocingo-bot!

Iingcinga ezikrelekrele

Ngoku masenze iiNgcinga eziSmart. Ikhowudi ivuliwe kwaye ilele GitHub. Ihlonyelwe kakuhle kwaye ilikhulu lemigca ubude. Yifunde njengeopera diva libretto!

Ukwakha i-Telegram bot kwiYandex.Cloud

Cola iprojekthi kwaye ufake ukuxhomekeka:

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

Yenza utshintsho olufunayo kwifayile index.js (ukhetho; akufuneki utshintshe nantoni na). Yenza zip-ugcino, kunye nefayile index.js kunye nefolda iimodyuli ngaphakathi, umzekelo, phantsi kwegama smart.zip.

Ukwakha i-Telegram bot kwiYandex.Cloud

Ngoku yiya kwi-console yethu Imisebenzi yeYandex, khetha isithuba I-ZIP yokugcina, cofa iqhosha Khetha ifayile, kwaye ukhuphele uvimba wethu smart.zip. Ekugqibeleni, kwikona ephezulu ngasekunene, cofa iqhosha Yenza inguqulelo.

Ukwakha i-Telegram bot kwiYandex.Cloud

Kwimizuzwana embalwa, xa umsebenzi uhlaziywa, siya kuvavanya i-bot yethu kwakhona. Ngoku akasekho "izibuko", kodwa uhambisa iingcamango ezihlakaniphile!

Ukwakha i-Telegram bot kwiYandex.Cloud

Kuphelele apho namhlanje. Amanqaku amaninzi alandelayo. Ukuba unomdla wokufunda oku, bhalisa kwizaziso malunga namanqaku amatsha. Ungabhalisa apha, okanye apha yocingo-ijelo IT Tutorial Zakharokanye Twitter @mikezaharov.

iimbekiselo

Ikhowudi kwiGitHub
Yandex Cloud Imisebenzi
Yandex Into yokugcina
Iibhothi: Intshayelelo yabaphuhlisi
Telegram Bot API

Iminikelo

Ukwakha i-Telegram bot kwiYandex.Cloud

umthombo: www.habr.com

Yongeza izimvo