Telegram bot bat eraikitzen Yandex.Cloud-en

Telegram bot bat eraikitzen Yandex.Cloud-en

Gaur, material inprobisatuetatik, bilduko dugu Yandex.Hodeia Telegrama bot batera Yandex Cloud Funtzioak (Edo Yandex funtzioak laburtasunerako) eta Yandex objektu biltegiratzea (Edo Objektuen biltegiratzea - argitasuna lortzeko). Kodea aktibatuta egongo da Node.js. Hala ere, bada zirkunstantzia bitxi bat - demagun erakunde jakin bat izenekoa. RossKomZentsura (Zentsura Errusiar Federazioaren Konstituzioaren 29. artikuluak debekatuta dago), ez die onartzen Errusiako Interneteko hornitzaileei eskaerak transferitzea. Telegram APIa helbidearen bidez: 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:

Telegram bot bat eraikitzen Yandex.Cloud-en

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 Alicek trebetasuna lortzen du. Orain (goiko artikulua argitaratu ondoren aldaketa batzuk egin ondoren) smartphone batean hau trebetasuna itxura hau izango du:

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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 Alizia Bitrixen lurrean, eta gero - Yandex funtzioek posta bidaltzen dute. Ia ziur nago bi artikulu txiki samarrak nahikoak izango zaizkizula gaiaren oinarrizko ulermena izateko.

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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:

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

Horren ostean, ontzi guztien zerrendak honelako itxura izan dezake (zure ontzi bakarra bada):

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

Orain karpetaren izenan klik egin dezakezu, bertan sartu eta fitxategiak igo ditzakezu:

Telegram bot bat eraikitzen Yandex.Cloud-en

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).

Telegram bot bat eraikitzen Yandex.Cloud-en

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:

Telegram bot bat eraikitzen Yandex.Cloud-en

Probak. Ispilu egin behar da.

Telegram bot bat eraikitzen Yandex.Cloud-en

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 GitHub. Nahiko ondo komentatuta dago, eta ehun lerro baino ez ditu. Irakur ezazu opera diva libreto bat bezala!

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

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.

Telegram bot bat eraikitzen Yandex.Cloud-en

Segundo gutxitan, funtzioa eguneratzen denean, gure bot berriro probatuko dugu. Orain jada ez du "ispilurik" egiten, baina pentsamendu adimentsuak ematen ditu!

Telegram bot bat eraikitzen Yandex.Cloud-en

Hori da dena gaurko. Beste artikulu batzuk jarraian. Hau irakurtzeko interesa baduzu, harpidetu artikulu berrien jakinarazpenetara. Harpidetza egin dezakezu hemen edo Telegrama-kanal IT Tutoriala ZakharEdo Twitter @mikezaharov.

Erreferentziak

Kodea GitHub-en
Yandex Cloud Funtzioak
Yandex objektu biltegiratzea
Bots: Garatzaileentzako sarrera
Telegram Bot APIa

Dohaintzak

Telegram bot bat eraikitzen Yandex.Cloud-en

Iturria: www.habr.com

Gehitu iruzkin berria