Að byggja Telegram láni í Yandex.Cloud

Að byggja Telegram láni í Yandex.Cloud

Í dag munum við safna inn úr spunaefnum Yandex.Cloud Telegram láni að nota Yandex skýjaaðgerðir (Eða Yandex aðgerðir í stuttu máli) og Yandex Object Geymsla (Eða Hlutageymsla - til glöggvunar). Kóðinn verður á Node.js. Hins vegar er ein merkileg atvik - ákveðin stofnun sem heitir, við skulum segja, RossKomRitskoðun (ritskoðun er bönnuð samkvæmt 29. grein stjórnarskrár Rússlands), leyfir ekki netveitum í Rússlandi að flytja beiðnir til Telegram API á: https://api.telegram.org/. Jæja, við gerum það ekki - nei, nei. Reyndar, í töskunni okkar eru svokölluð. vefkrókar - með þeirra hjálp sendum við ekki beiðnir á ákveðið heimilisfang, heldur sendum við beiðni okkar sem svar við hvers kyns beiðni til okkar. Það er, eins og í Odessa - við svörum spurningu með spurningu. Þess vegna Telegram API mun ekki birtast í kóðanum okkar.

FyrirvariNöfn allra ríkisstofnana sem nefnd eru í þessari grein eru uppdiktuð og hugsanlegar tilviljanir við nöfn raunverulegra stofnana eru tilviljun.

Svo, við munum búa til vélmenni sem mun veita okkur snjallar hugsanir. Nákvæmlega eins og á myndinni:

Að byggja Telegram láni í Yandex.Cloud

Þú getur prófað það í verki - hér er nafnið: @SmartThoughtsBot. Taktu eftir takkanum "Hæfi Alice"? Þetta er vegna þess að botninn er eins konar "félagi" fyrir samnefndan Hæfni Alice, þ.e. það sinnir sömu aðgerðum og Hæfni Alice og, ef til vill, að þeir geti lifað friðsamlega saman með því að auglýsa hvort annað. Um hvernig á að búa til Snjall hugsunarhæfileiki lýst í greininni Alice fær hæfileikann. Nú (eftir að hafa gert nokkrar breytingar eftir birtingu ofangreindrar greinar) á snjallsíma þetta hæfni mun líta eitthvað svona út:

Að byggja Telegram láni í Yandex.Cloud

Bot sköpun

Ég myndi vilja að þessi kennsla nýtist öllum, þ.m.t. og byrjendur "bot smiðir". Þess vegna mun ég í þessum kafla lýsa í smáatriðum hvernig á að búa til almennt í Telegram'e bots. Fyrir þá sem ekki þurfa þessar upplýsingar, haldið áfram í næstu kafla.

Opnaðu forritið Telegaram, við köllum föður allra vélmenna (þeir hafa allt eins og fólk) - @BotFather - og til að byrja með munum við gefa honum / hjálpa skipunina til að hressa upp á minni okkar um hvað við getum gert. Núna höfum við áhuga á liðinu / newbot.

Að byggja Telegram láni í Yandex.Cloud

Þar sem botninn sem lýst er hér hefur þegar verið búinn til, í sýnikennsluskyni mun ég búa til annan vélmenni í stuttan tíma (þá mun ég eyða honum). Ég hringi í hann DemoHabrBot. Nöfn (notandanafn) allir símskeyti bottar verða að enda á orði láni, til dæmis: MyCoolBot eða my_cool_bot Þetta er fyrir vélmenni. En fyrst, gefðu botninum nafn (nafn) er fyrir fólk. Nafnið getur verið á hvaða tungumáli sem er, innihaldið bil, þarf ekki að enda á orði láni, og þarf ekki einu sinni að vera einstakt. Í þessu dæmi kallaði ég þetta bot Demo Habr.

Að byggja Telegram láni í Yandex.Cloud

Veldu nú nafn fyrir botninn (notandanafn, sá fyrir vélmenni). Við skulum kalla það DemoHabrBot. Allt sem tengist nafni botnsins (nafn) er alls ekki tengt nafni hans - notandanafn (eða á við, en einmitt öfugt). Eftir að hafa búið til einstakt botnafn, þurfum við að afrita og vista (í fyllsta trúnaði!) táknið sem sýnt er á skjámyndinni með rauðri ör. Með hjálp þess munum við síðar setja upp sendan Telegram'a webhook til okkar Yandex virka.

Að byggja Telegram láni í Yandex.Cloud

Og nú munum við gefa föður allra botna skipunina: /mybotsog það mun sýna okkur lista yfir alla vélmenni sem við höfum búið til. Látum nýbakaða botninn í friði í bili Demo Habr (það var búið til til að sýna hvernig á að búa til vélmenni, en við munum nota það í dag í öðrum sýnikennslu tilgangi), og íhuga vélmenni Snjallar hugsanir (@SmartThoughtsBot). Smelltu á hnappinn með nafni hans á listanum yfir vélmenni.

Að byggja Telegram láni í Yandex.Cloud

Þetta er þar sem við getum sett upp botni okkar. Að ýta á takka Breyta ... við munum halda áfram að breyta einum eða öðrum valkosti. Til dæmis með því að smella á hnappinn Breyttu nafni við getum breytt nafni botnsins, segjum í staðinn fyrir Snjallar hugsanir, skrifa geggjaðar hugmyndir. Botpic - þetta er avatar vélmannsins, verður að vera að minnsta kosti 150 x 150 px. Lýsing er stutt lýsing sem notandinn sér þegar botninn er ræstur í fyrsta skipti, sem svar við spurningunni: Hvað getur þessi botni gert? Um okkur - enn styttri lýsing, sem er send með hlekk á botni (https://t.me/SmartThoughtsBot) eða þegar þú skoðar upplýsingar um það.

Að byggja Telegram láni í Yandex.Cloud

Við þurfum bara að setja upp skipanirnar. Til að gera þetta, ýttu á hnappinn Breyta skipunum. Að staðla starfshætti notenda Telegram mælir með því að nota alltaf tvær skipanir: / byrja и / hjálp, og ef botninn þarfnast stillingar, viðbótarskipun /settings. Botni okkar er eins einfalt og bolti, svo það þarf engar stillingar ennþá. Við skrifum fyrstu tvær skipanirnar sem við munum síðan vinna í kóðanum. Nú, ef notandinn slær inn skástrik (skástrik: /) í innsláttarreitinn, mun listi yfir skipanir birtast fyrir fljótlegt val þeirra. Allt er eins og á myndinni: til vinstri - við setjum skipanir í gegnum bot-faðirinn; til hægri eru þessar skipanir nú þegar aðgengilegar notendum í botni okkar.

Að byggja Telegram láni í Yandex.Cloud

Yandex virka

Nú þegar botninn okkar hefur verið búinn til skulum við fara í Yandex.Cloudtil að búa til aðgerð sem mun keyra lánakóðann okkar. Ef þú hefur ekki unnið með Yandex.Cloud lesa efnið Lísa í landi Bitrix, og svo - Yandex aðgerðir senda póst. Ég er næstum viss um að þessar tvær tiltölulega litlu greinar dugi þér til að hafa grunnskilning á efninu.

Svo í vélinni Yandex.Clouds í vinstri yfirlitsvalmyndinni skaltu velja hlutinn Aðgerðir skýja, og ýttu síðan á hnappinn Búðu til aðgerð. Við gefum því nafn, og fyrir okkur sjálf - stutt lýsing.

Að byggja Telegram láni í Yandex.Cloud

Eftir að hafa ýtt á hnappinn búa til og eftir nokkrar sekúndur mun nýja aðgerðin birtast á listanum yfir allar aðgerðir. Smelltu á nafnið hennar - þetta færir okkur á síðuna Skoða hlutverk okkar. Hér þarftu að virkjaOn) skipta opinbert hlutverktil að gera það aðgengilegt frá ytri (fyrir Yandex.Clouds) heimsins, og verðmæti túnanna Tengill til að hringja и Auðkenni - Haltu því leyndu fyrir öllum nema þér og Telegram, svo að ýmsir svindlarar geti ekki hringt í hlutverk þitt.

Að byggja Telegram láni í Yandex.Cloud

Notaðu nú vinstri valmyndina til að fara í Ritstjóri aðgerðir. Við skulum leggja til hliðar um stund okkar Snjallar hugsanir, og búðu til lágmarks sniðmátsaðgerð til að athuga frammistöðu vélmennisins okkar ... Hins vegar, í þessu samhengi, er þessi aðgerð okkar vélmenni ... Í stuttu máli, núna og hér, munum við búa til einfaldasta vélmanninn sem mun „spegla“ ( sendu til baka) notendabeiðnir. Þetta sniðmát er alltaf hægt að nota þegar þú býrð til nýja símskeyti vélmenni til að tryggja að samskipti við Telegram'om virkar fínt. Smellur Búa til skrá, kallaðu það index.js, og á netinu Kóðaritill límdu eftirfarandi kóða inn í þessa skrá:

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 stjórnborðinu ætti það að líta einhvern veginn svona út:

Að byggja Telegram láni í Yandex.Cloud

Hér að neðan vísum við til innkomustaður - index.bothvar Vísitala þetta er skráarnafnið (index.js), og láni - heiti aðgerða (module.exports.bot). Skildu eftir alla aðra reiti „eins og er“ og smelltu á hnappinn í efra hægra horninu Búa til útgáfu. Eftir nokkrar sekúndur verður þessi útgáfa af aðgerðinni búin til. Fljótlega eftir próf vefhook, munum við búa til nýja útgáfu − Snjallar hugsanir.

Að byggja Telegram láni í Yandex.Cloud

Hlutageymsla

Nú þegar við höfum sett upp Yandex virkaförum á meðan við erum í stjórnborðinu Yandex.Clouds, búa til svokallaða. fötu (fötu, þ.e. fötu á rússnesku, alls ekki vönd) til að geyma myndaskrár sem verða notaðar í botni okkar Snjallar hugsanir. Veldu úr vinstri yfirlitsvalmyndinni Object Bílskúr, Ýttu á takkann Búðu til fötu, gefðu því nafn, til dæmis, img-fötu, og síðast en ekki síst, Lesaðgangur að hlutum gerðu það opinbert - annars mun Telegram ekki sjá myndirnar okkar. Allir aðrir reitir eru óbreyttir. Við ýtum á hnappinn Búðu til fötu.

Að byggja Telegram láni í Yandex.Cloud

Eftir það gæti listi yfir allar fötur litið svona út (ef þetta er eina fötuna þín):

Að byggja Telegram láni í Yandex.Cloud

Nú legg ég til að smella á heitið á fötunni og búa til möppu inni í henni til að skipuleggja geymslu mynda fyrir mismunandi forrit. Til dæmis fyrir símskeyti vélmenni Snjallar hugsanir ég bjó til möppu sem heitir tg-bot-snjall-hugsanir (Ekkert, ég mun skilja þetta dulmál). Búðu til einn líka.

Að byggja Telegram láni í Yandex.Cloud

Nú geturðu smellt á möppuna, farið inn í það og hlaðið upp skrám:

Að byggja Telegram láni í Yandex.Cloud

Og smelltu á skráarnafnið - fáðu það URL til notkunar í botni okkar, og almennt - hvar sem er (en ekki birta þetta URL að óþörfu, þar sem umferð frá geymsla hluta gjaldfærður).

Að byggja Telegram láni í Yandex.Cloud

Hér er það í rauninni allt og sumt geymsla hluta. Nú munt þú vita hvað þú átt að gera þegar þú sérð hvetja um að hlaða upp skrám þangað.

Webhook

Nú munum við setja upp vefhook — þ.e. þegar vélmenni fær uppfærslu (til dæmis skilaboð frá notanda), frá þjóninum Telegram inn í okkar Yandex virka beiðni verður sendóska eftir) með gögnum. Hér er strengur sem þú getur einfaldlega límt inn í heimilisfangsreit vafrans og síðan endurnýjað síðuna (það þarf aðeins að gera einu sinni): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Skiptu bara um {bot_token} til táknsins sem við fengum frá föðurbotninum þegar við bjuggum til botninn okkar, og {webhook_url} - áfram URL okkar Yandex aðgerðir. Bíddu aðeins! En RossKomRitskoðun bannar veitendum í Rússlandi að afhenda heimilisfangið https://api.telegram.org. Já það er rétt. En þér dettur eitthvað í hug. Þegar öllu er á botninn hvolft geturðu, til dæmis, spurt ömmu þína um það í Úkraínu, Ísrael eða Kanada - það eru engin „rússnesk ritskoðun“ þar og aðeins Guð veit hvernig fólk lifir án hennar. Þess vegna ætti beiðni-svarið við uppsetningu á vefhook að líta svona út:

Að byggja Telegram láni í Yandex.Cloud

Prófanir. Ætti að vera speglaður.

Að byggja Telegram láni í Yandex.Cloud

Þetta er satt. Hamingjuóskir okkar - núna Yandex virka hefur orðið Telegram-bot!

Snjallar hugsanir

Og nú gerum við Smart Thoughts. Kóðinn er opinn og og liggur á GitHub. Það er nokkuð vel skrifað um það og það er aðeins hundrað línur að lengd. Lestu það eins og óperudívu líbrettó!

Að byggja Telegram láni í Yandex.Cloud

Klónaðu verkefnið og settu upp ósjálfstæðin:

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

Gerðu þær breytingar sem þú þarft á skránni index.js (valfrjálst; þú getur ekki breytt neinu). Búa til Zip-skjalasafn, með skrá index.js og möppu hnútamódel inni, til dæmis, heitir smart.zip.

Að byggja Telegram láni í Yandex.Cloud

Farðu nú í stjórnborðið til okkar Yandex aðgerðir, veldu flipann ZIP skjalasafn, Ýttu á takkann Veldu skráog hlaðið niður skjalasafninu okkar smart.zip. Að lokum, í efra hægra horninu, smelltu á hnappinn Búa til útgáfu.

Að byggja Telegram láni í Yandex.Cloud

Eftir nokkrar sekúndur, þegar aðgerðin er uppfærð, munum við prófa botann okkar aftur. Nú „speglar hann“ ekki lengur heldur skilar snjöllum hugsunum!

Að byggja Telegram láni í Yandex.Cloud

Það er allt í dag. Aðrar greinar fylgja. Ef þú hefur áhuga á að lesa þetta skaltu gerast áskrifandi að tilkynningum um nýjar greinar. Hægt er að gerast áskrifandi hér eða Telegram-rás ÞAÐ kennsla ZakharEða twitter @mikezaharov.

tilvísanir

Kóði á GitHub
Yandex skýjaaðgerðir
Yandex Object Geymsla
Bots: Kynning fyrir forritara
Telegram Bot API

Framlög

Að byggja Telegram láni í Yandex.Cloud

Heimild: www.habr.com

Bæta við athugasemd