Gaur, material inprobisatuetatik, bilduko dugu https://api.telegram.org/
. Beno, ez dugu egingo... ez, ez. Izan ere, gure poltsan daude deiturikoak. webhook - haien laguntzarekin, ez dugu eskaerarik egiten helbide zehatz batera, baizik eta gure eskaera edozein eskaerari erantzuteko baino ez dugu bidaltzen. Hau da, Odesan bezala - galdera bati galdera batekin erantzuten diogu. Horregatik Telegram APIa ez da gure kodean agertuko.
ErantzukizunaArtikulu honetan aipatzen diren edozein estatu-erakundeen izenak fikziozkoak dira, eta benetako erakundeen izenekin kointzidentzia posibleak ustekabekoak dira.
Beraz, pentsamendu adimentsuak emango dizkigun bot bat egingo dugu. Irudian bezalaxe:
Ekintzan probatu dezakezu - hona hemen izena: @SmartThoughtsBot. Kontuan izan botoia "Aliceren trebetasuna"? Hau da, bot-a eponimoaren "lagun" moduko bat delako Aliceren trebetasuna, hau da. funtzio berdinak betetzen ditu Aliceren trebetasuna eta, beharbada, elkarren artean iragartzen bakean bizi daitezkeela. Nola sortu Pentsamendu adimenduna trebetasuna artikuluan deskribatuta
Bot sortzea
Tutorial hau guztientzako erabilgarria izatea nahiko nuke, barne. eta hasiberria "bot builders". Hori dela eta, atal honetan orokorrean nola sortu den zehatz-mehatz azalduko dut Telegrama'e bots. Informazio hau behar ez dutenentzat, jarraitu hurrengo ataletara.
Ireki aplikazioa Telegaram, bot guztien aita deitzen dugu (dena dute pertsonak bezala) - @BotFather - eta hasteko, / laguntza agindua emango diogu, egin dezakegunaren memoria freskatzeko. Orain taldea interesatzen zaigu / newbot.
Hemen deskribatutako bot-a dagoeneko sortua denez, erakustaldietarako beste bot bat sortuko dut denbora laburrean (gero ezabatu egingo dut). deituko diot DemoHabrBot. Izenak (erabiltzailea) telegram bot guztiek hitz batekin amaitu behar dute Zuzenean, adibidez: MyCoolBot edo my_cool_bot Hau botentzat da. Baina lehenik eta behin, eman bot-ari izena (izena) pertsonentzat da. Izena edozein hizkuntzatan egon daiteke, zuriuneak eduki, ez du zertan hitz batekin amaitu behar Zuzenean, eta ez du zertan bakarra izan. Adibide honetan, bot honi deitu diot Demo Habr.
Orain aukeratu bot-aren izen bat (erabiltzailea, botentzakoa). Dei diezaiogun DemoHabrBot. Botaren izenari lotutako guztia (izena) ez dago bere izenarekin zerikusirik - erabiltzailea (edo aplikatzen da, baina guztiz kontrakoa). Bot izen esklusibo bat arrakastaz sortu ondoren, pantaila-argazkian gezi gorri batekin agertzen den tokena kopiatu eta gorde behar dugu (konfidantza osoz!). Bere laguntzarekin, geroago instalatuko dugu outgoing Telegrama'gurerako webhook Yandex funtzioa.
Eta orain agindua emango diogu bot guztien aitari: / mybotseta sortu ditugun bot guztien zerrenda erakutsiko digu. Utz dezagun oraingoz labean berria den bot Demo Habr (botak nola sortu erakusteko sortu zen, baina gaur erabiliko dugu beste erakustaldietarako), eta kontuan hartu bot Pentsamendu adimentsuak (@SmartThoughtsBot). Egin klik bere izena duen botoian bot-en zerrendan.
Hemen gure bot-a konfiguratu dezakegu. Botoi bat sakatzea Editatu⦠aukeraren bat edo beste editatzera pasatuko gara. Adibidez, botoian klik eginez Editatu izena bot-aren izena alda dezakegu, esan ordez Pentsamendu adimentsuak, idatzi ideia zoroak. Botpic - hau da bot-aren avatarra, gutxienez izan behar du 150 x 150 px. Deskribapena erabiltzaileak bot-a lehen aldiz abiarazten denean ikusten duen deskribapen labur bat da, galderari erantzun gisa: Zer egin dezake bot honek? buruz - deskribapen laburragoa, bot-rako esteka batekin transmititzen dena (https://t.me/SmartThoughtsBot
) edo horri buruzko informazioa ikustean.
Komandoak konfiguratu besterik ez dugu egin behar. Horretarako, sakatu botoia Editatu komandoak. Erabiltzaileen praktikak estandarizatzeko Telegrama beti bi komando erabiltzea gomendatzen du: /hasi ΠΈ / lagundu, eta bot-ak ezarpenak behar baditu, /settings komando gehigarri bat. Gure bot-a baloi bat bezain erraza da, beraz, oraindik ez du ezarpenik behar. Lehenengo bi komandoak idazten ditugu, eta gero kodean prozesatu egingo ditugu. Orain, erabiltzaileak barra (barra karakterea: /) sartzen badu sarrerako eremuan, komandoen zerrenda agertuko da azkar hautatzeko. Dena irudian bezala dago: ezkerrean - komandoak ezartzen ditugu bot-aitaren bidez; eskuinaldean, komando hauek dagoeneko erabilgarri daude gure bot-eko erabiltzaileentzat.
Yandex funtzioa
Orain gure bot-a sortu dela, goazen Yandex.Hodeiagure bot kodea exekutatuko duen funtzio bat sortzeko. Ez baduzu lan egin Yandex.Hodeia irakurri materiala
Beraz, kontsolan Yandex.Hodeiak ezkerreko nabigazio menuan, hautatu elementua Hodeiko funtzioak, eta, ondoren, sakatu botoia Sortu funtzio bat. Izena ematen diogu, eta geure buruari - deskribapen labur bat.
Botoia sakatu ondoren sortzen eta segundo pare bat igaro ondoren, funtzio berria funtzio guztien zerrendan agertuko da. Egin klik bere izenan - honek orrialdera eramango gaitu ΠΠ±Π·ΠΎΡ gure funtzioa. Hemen gaitu behar duzuOn) aldatu funtzio publikoakanpotik eskuragarri jartzeko (horretarako Yandex.Hodeiak) munduko, eta eremuen balioa Deitzeko esteka ΠΈ Identifier - gorde ezazu guztion sekretuan zeure burua eta Telegram izan ezik, hainbat iruzurgilek zure funtzioa deitu ezin dezaten.
Orain ezkerreko menua erabiliz joan hona Editorea funtzioak. Utz dezagun une batez gurea Pentsamendu adimentsuak, eta sortu txantiloi funtzio minimo bat gure botaren errendimendua egiaztatzeko ... Hala ere, testuinguru honetan, funtzio hau gure bot da ... Laburbilduz, orain eta hemen bertan "ispilu" egingo duen bot errazena egingo dugu ( hau da, itzuli ) erabiltzaileen eskaerak. Txantiloi hau beti erabil daiteke telegram bot berriak sortzean komunikazio hori ziurtatzeko Telegrama'om ondo funtzionatzen du. Egin klik Sortu fitxategia, deitu aurkibidea.js, eta sarean Kode editorea itsatsi honako kodea fitxategi honetan:
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
};
};
Yandex.Cloud kontsolan, honelako itxura izan beharko luke:
Jarraian, adierazten dugu sarrera puntua - aurkibidea.botNon indizea hau da fitxategiaren izena (aurkibidea.js), eta Zuzenean - funtzioaren izena (modulua.esportazioak.bot). Utzi gainerako eremu guztiak "bezala" eta goiko eskuineko izkinan egin klik botoian Sortu bertsioa. Segundo batzuk igaro ondoren, funtzioaren bertsio hau sortuko da. Proba egin eta gutxira webhook, bertsio berri bat sortuko dugu β Pentsamendu adimentsuak.
Objektuen biltegiratzea
Orain ezarri dugula Yandex funtzioagoazen kontsolan gauden bitartean Yandex.Hodeiak, deiturikoak sortu. ontzi (ontzi, hau da. bucket errusieraz, ez inola ere sorta bat) gure bot-ean erabiliko diren irudi-fitxategiak gordetzeko Pentsamendu adimentsuak. Hautatu ezkerreko nabigazio menutik Objektuaren biltegia, sakatu botoia Sortu kuboa, eman izena, adibidez, img-ontzia, eta, garrantzitsuena, Objektuetarako sarbidea irakurtzeko publiko egin; bestela, Telegramek ez ditu gure argazkiak ikusiko. Beste eremu guztiak aldatu gabe geratu dira. Botoia sakatzen dugu Sortu kuboa.
Horren ostean, ontzi guztien zerrendak honelako itxura izan dezake (zure ontzi bakarra bada):
Orain ontziaren izenan klik egitea proposatzen dut, eta bere barruan karpeta bat sortzea aplikazio ezberdinetarako irudien biltegia antolatzeko. Adibidez, telegram bot batentzat Pentsamendu adimentsuak izeneko karpeta bat sortu dut tg-bot-smart-thoughts (Ezer ez, zifra hau ulertuko dut). Sortu bat ere.
Orain karpetaren izenan klik egin dezakezu, bertan sartu eta fitxategiak igo ditzakezu:
Eta fitxategiaren izenaren gainean klik eginez - lortu URL gure bot-an erabiltzeko, eta, oro har, edonon (baina, ez argitaratu hau URL alferrik, trafikoa geroztik objektuen biltegiratzea kobratuta).
Hemen, hain zuzen ere, hori da dena objektuen biltegiratzea. Orain jakingo duzu zer egin bertan fitxategiak kargatzeko gonbita ikusten duzunean.
Webhook
Orain instalatuko dugu webhook βhau da. bot-ak eguneratze bat jasotzen duenean (adibidez, erabiltzailearen mezu bat), zerbitzaritik Telegrama gurera Yandex funtzioa eskaera bidaliko daeskatu) datuekin. Hona hemen arakatzailearen helbide eremuan itsatsi dezakezun kate bat, eta gero orria freskatu (hau behin bakarrik egin behar da): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Ordeztu besterik ez {bot_token} aita-botetik jaso genuen tokenera gure bot-a sortzean, eta {webhook_url} - aktibatuta URL gure Yandex funtzioak. Itxaron minutu batez! Baina RossKomZentsura Errusiar Federazioko hornitzaileei helbidea hornitzea debekatzen die https://api.telegram.org
. Bai, horixe da. Baina zerbait pentsa dezakezu. Azken finean, adibidez, zure amonari galdetu diezaiokezu Ukrainan, Israelen edo Kanadan - ez dago "errusiako zentsurarik" han, eta Jainkoak bakarrik daki nola bizi den jendea hori gabe. Ondorioz, webhook-a instalatzerakoan eskaera-erantzunak honela izan beharko luke:
Probak. Ispilu egin behar da.
Hau egia da. Gure zorionak - orain Yandex funtzioa bihurtu Telegrama-bot!
Pentsamendu adimentsuak
Eta orain Smart Thoughts egiten dugu. Kodea irekita dago eta etzan dago
Klonatu proiektua eta instalatu menpekotasunak:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Egin fitxategian behar dituzun aldaketak aurkibidea.js (aukerakoa; ezin duzu ezer aldatu). Sortu zip-artxiboa, fitxategi batekin aurkibidea.js eta karpeta nodo_moduluak barruan, adibidez, izenekoa smart.zip.
Orain sartu kontsolara gurera Yandex funtzioak, hautatu fitxa ZIP artxiboa, sakatu botoia Hautatu fitxategi bateta deskargatu gure artxiboa smart.zip. Azkenik, goiko eskuineko izkinan, egin klik botoian Sortu bertsioa.
Segundo gutxitan, funtzioa eguneratzen denean, gure bot berriro probatuko dugu. Orain jada ez du "ispilurik" egiten, baina pentsamendu adimentsuak ematen ditu!
Hori da dena gaurko. Beste artikulu batzuk jarraian. Hau irakurtzeko interesa baduzu, harpidetu artikulu berrien jakinarazpenetara. Harpidetza egin dezakezu hemen edo Telegrama-kanal
Erreferentziak
Dohaintzak
Iturria: www.habr.com