Namuhla, kusukela ezintweni ezilahliwe, sizohlangana 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:
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
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.
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.
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.
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.
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.
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.
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
Ngakho ku-console I-Yandex.Cloud kumenyu yesokunxele yokuzulazula khetha into Imisebenzi Yefu, bese ucindezela inkinobho Dala umsebenzi. Sinikeza igama kanye nencazelo emfushane ngathi.
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.
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:
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.
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.
Ngemva kwalokhu, uhlu lwawo wonke amabhakede lungase lubukeke kanje (uma leli kuwukuphela kwebhakede lakho):
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.
Manje ungachofoza egameni lefolda, ungene kuyo futhi ulayishe amafayela:
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).
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:
Siyahlola. Kufanele "isibuko".
Yiqiniso lokhu. Siyakuhalalisela - manje Umsebenzi we-Yandex waba yocingo-bot!
Imicabango Ehlakaniphile
Manje masenze Imicabango Ehlakaniphile. Ikhodi ivuliwe futhi ilele
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.
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.
Emizuzwaneni embalwa, lapho umsebenzi ubuyekezwa, sizohlola i-bot yethu futhi. Manje akasaziboni βizibukoβ, kodwa uletha imicabango ehlakaniphile!
Yilokho kuphela okwanamuhla. Izindatshana ezengeziwe ziyalandela. Uma ungathanda ukufunda lokhu, bhalisa ukuze uthole izaziso mayelana nama-athikili amasha. Ungabhalisa lapha, noma ku- yocingo-isiteshi
izithenjwa
Iminikelo
Source: www.habr.com