Ṣiṣe bot Telegram kan ni Yandex.Cloud

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Loni, lati awọn ohun elo aloku, a yoo pejọ Yandex.Cloud Telegram bot lilo Awọn iṣẹ awọsanma Yandex (tabi Awọn iṣẹ Yandex - fun kukuru) ati Ibi ipamọ Nkan Yandex (tabi Ibi ipamọ nkan - fun wípé). Awọn koodu yoo wa ni titan Node.js. Sibẹsibẹ, ipo pataki kan wa - agbari kan ti a pe, jẹ ki a sọ, RossKomTsenzur (ihamon jẹ idinamọ nipasẹ Abala 29 ti ofin ti Orilẹ-ede Russia), ko gba laaye awọn olupese Intanẹẹti Ilu Rọsia lati gbe awọn ibeere ranṣẹ si Telegram API nipasẹ adirẹsi: https://api.telegram.org/. O dara, a kii yoo - rara, rara. Lẹhinna, ninu apo wa ti a npe ni. webhooks - pẹlu iranlọwọ wọn, a ko ṣe awọn ibeere si adirẹsi kan pato, ṣugbọn nirọrun firanṣẹ ibeere wa bi idahun si eyikeyi ibeere si wa. Iyẹn ni, bi ni Odessa, a dahun ibeere kan pẹlu ibeere kan. Iyẹn ni idi Telegram API kii yoo han ninu koodu wa.

AlAIgBAAwọn orukọ ti eyikeyi awọn ajọ ijọba ti a mẹnuba ninu nkan yii jẹ arosọ, ati pe awọn ibaamu ti o ṣeeṣe pẹlu awọn orukọ ti awọn ajọ aye gidi jẹ ijamba.

Nitorinaa, a yoo ṣe bot ti yoo pese wa pẹlu awọn ero ọlọgbọn. Gangan bi ninu aworan:

Ṣiṣe bot Telegram kan ni Yandex.Cloud

O le gbiyanju rẹ ni iṣe - eyi ni orukọ: @SmartThoughtsBot. Ṣe akiyesi bọtini naa "Ogbon Alice"? Eyi jẹ nitori bot jẹ iru "alabaṣepọ" fun bot ti orukọ kanna. Alice ká olorijori, i.e. o ṣe awọn iṣẹ kanna bi Alice ká olorijori ati pe o ṣee ṣe pe wọn yoo ni anfani lati gbe ni alaafia nipasẹ ipolowo ara wọn. Nipa bi o ṣe le ṣẹda olorijori Smart ero a sapejuwe ninu awọn article Alice anfani olorijori. Bayi (lẹhin ṣiṣe diẹ ninu awọn ayipada lẹhin titẹjade nkan ti o wa loke) lori foonuiyara yii ogbon yoo dabi iru eyi:

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Ṣiṣẹda bot

Emi yoo fẹ ikẹkọ yii lati wulo fun gbogbo eniyan, pẹlu. ati alakobere bot ọmọle. Nitorina, ni apakan yii Emi yoo ṣe apejuwe ni diẹ ninu awọn apejuwe bi o ṣe le ṣẹda ni apapọ Telegramawọn bot. Fun awọn ti ko nilo alaye yii, tẹsiwaju si awọn apakan atẹle.

Ṣii ohun elo naa Telegaram, jẹ ki a pe baba gbogbo awọn bot (wọn ni ohun gbogbo bi eniyan) - @BotBaba - ati ni akọkọ a yoo fun u ni aṣẹ / iranlọwọ lati sọ iranti rẹ di ohun ti a le ṣe. Bayi a yoo nifẹ ninu ẹgbẹ naa / newbot.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Niwọn igba ti bot ti a ṣalaye nibi ti ṣẹda tẹlẹ, fun awọn idi ifihan Emi yoo ṣẹda bot miiran fun igba diẹ (ati lẹhinna paarẹ). Emi yoo pe e DemoHabrBot. Awọn orukọ (olumulo) ti gbogbo awọn bot telegram gbọdọ pari pẹlu ọrọ naa botfun apẹẹrẹ: MyCoolBot tabi bot_mi_mi - Eyi jẹ fun awọn bot. Ṣugbọn akọkọ a fun bot orukọ kan (orukọ) - ati pe eyi jẹ fun eniyan. Orukọ le wa ni eyikeyi ede, ni awọn aaye ninu, ko si ni lati pari pẹlu ọrọ kan bot, ati pe ko paapaa ni lati jẹ alailẹgbẹ. Ni apẹẹrẹ yii, Mo pe bot yii Ririnkiri Habr.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Bayi yan orukọ kan fun bot (olumulo, ọkan fun awọn bot). Jẹ́ ká pè é DemoHabrBot. Ohun gbogbo ti o ni ibatan si orukọ bot (orukọ) ko ni ibatan si orukọ rẹ rara - olumulo (tabi kan, ṣugbọn gangan idakeji). Lẹhin ṣiṣẹda aṣeyọri orukọ bot alailẹgbẹ, a nilo lati daakọ ati fipamọ (ni igbẹkẹle to muna!) Aami ti o han ni sikirinifoto pẹlu itọka pupa kan. Pẹlu awọn oniwe-iranlọwọ a yoo nigbamii fi idi awọn ti ipilẹṣẹ lati Telegram'a webhook si wa Yandex iṣẹ.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Bayi jẹ ki a fun ni aṣẹ fun baba gbogbo awọn bot: /mybots, ati pe yoo fihan wa akojọ kan ti gbogbo awọn bot ti a ti ṣẹda. Jẹ ki a fi bot tuntun ti a yan silẹ nikan fun bayi Ririnkiri Habr (o ṣẹda lati ṣafihan bi o ṣe le ṣẹda awọn bot, ṣugbọn a yoo tun lo loni fun awọn idi ifihan miiran), ati jẹ ki a wo bot naa. Awọn ero Smart (@SmartThoughtsBot). Tẹ bọtini pẹlu orukọ rẹ ninu atokọ ti awọn botilẹtẹ.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Nibi a le tunto bot wa. Nipa titẹ bọtini Ṣatunṣe… A yoo lọ siwaju si ṣiṣatunṣe ọkan tabi aṣayan miiran. Fun apẹẹrẹ, nipa tite lori bọtini Orukọ Ṣatunkọ a le yi awọn orukọ ti awọn bot, wi dipo Awọn ero Smart, kọ Awọn imọran irikuri. Botpic - Eyi ni avatar bot, gbọdọ jẹ o kere ju 150 x 150 px. Apejuwe - Eyi jẹ apejuwe kukuru ti olumulo rii nigbati o bẹrẹ bot fun igba akọkọ, bi idahun si ibeere naa: Kini bot le ṣe? Nipa - apejuwe ani kukuru, eyiti o tan kaakiri pẹlu ọna asopọ si bot (https://t.me/SmartThoughtsBot) tabi nigba wiwo alaye nipa rẹ.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Gbogbo ohun ti a ni lati ṣe ni ṣeto awọn aṣẹ. Lati ṣe eyi, tẹ bọtini naa Ṣatunkọ Àsẹ. Lati standardize olumulo iwa Telegram ṣe iṣeduro nigbagbogbo lilo awọn aṣẹ meji: / bẹrẹ и / Egba Mi O, ati pe ti bot ba nilo awọn eto, lo aṣẹ afikun / awọn eto. Bot wa jẹ rọrun bi bọọlu, nitorinaa ko nilo awọn eto eyikeyi sibẹsibẹ. A kọ awọn aṣẹ meji akọkọ, eyiti a yoo ṣe ilana ni koodu. Bayi, ti olumulo ba wọ inu idinku (ami slash: /) ni aaye titẹ sii, atokọ ti awọn aṣẹ yoo han fun yiyan iyara. Ohun gbogbo jẹ bi ninu aworan: ni apa osi - a fi awọn aṣẹ nipasẹ baba bot; ni apa ọtun, awọn aṣẹ wọnyi wa tẹlẹ fun awọn olumulo ninu bot wa.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Yandex iṣẹ

Bayi pe a ti ṣẹda bot wa, jẹ ki a lọ si Yandex.Cloudlati ṣẹda iṣẹ kan ti yoo ṣiṣẹ koodu bot wa. Ti o ko ba ti ṣiṣẹ pẹlu Yandex.Cloud ka ohun elo Alice ni Land of Bitrix, ati igba yen - Awọn iṣẹ Yandex firanṣẹ meeli. Mo da mi loju pe awọn nkan kukuru kukuru meji wọnyi yoo to fun ọ lati ni oye ipilẹ ti koko-ọrọ naa.

Nitorina ninu console Yandex.Cloud ninu akojọ aṣayan lilọ kiri osi yan ohun kan Awọn iṣẹ Awọsanma, ati lẹhinna tẹ bọtini naa Ṣẹda iṣẹ kan. A fun ni orukọ ati apejuwe kukuru fun ara wa.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Lẹhin titẹ bọtini naa Ṣẹda ati lẹhin iṣẹju-aaya meji, iṣẹ tuntun yoo han ninu atokọ ti gbogbo awọn iṣẹ. Tẹ orukọ rẹ - eyi yoo mu wa lọ si oju-iwe naa Akopọ iṣẹ wa. Nibi o nilo lati mu ṣiṣẹ (On) yipada Àkọsílẹ iṣẹki o di wiwọle lati ita (fun Yandex.Cloud) ti aye, ati itumọ awọn aaye Ipe ọna asopọ и Idanimọ - tọju rẹ ni aṣiri jinna lati ọdọ gbogbo eniyan ayafi ararẹ ati Telegram, ki iṣẹ rẹ ko le pe nipasẹ ọpọlọpọ awọn scammers.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Bayi, ni lilo akojọ aṣayan osi, lọ si Olootu awọn iṣẹ. Jẹ ki a fi ara wa silẹ fun iṣẹju kan Awọn ero Smart, ki o si ṣẹda iṣẹ awoṣe ti o kere ju lati ṣayẹwo iṣẹ-ṣiṣe ti bot wa ... Sibẹsibẹ, ni aaye yii, iṣẹ yii jẹ bot wa ... Ni kukuru, bayi ati ni ibi yii a yoo ṣe bot ti o rọrun ti yoo "digi" ( ie firanṣẹ pada ) awọn ibeere olumulo. Awoṣe yii le ṣee lo nigbagbogbo nigbati o ṣẹda awọn bot telegram tuntun lati rii daju pe ibaraẹnisọrọ pẹlu Telegram'ohm ṣiṣẹ daradara. Tẹ Ṣẹda faili, jẹ ki a pe atọka.js, ati lori ayelujara Olootu koodu lẹ koodu atẹle yii sinu faili yii:

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

Ninu console Yandex.Cloud o yẹ ki o dabi iru eyi:

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Siwaju ni isalẹ a tọkasi Aaye titẹsi - atọka.botnibo Ìwé Eyi ni orukọ faili (atọka.js), ṣugbọn bot - orukọ iṣẹ (module.exports.bot). Fi gbogbo awọn aaye miiran silẹ bi o ṣe jẹ, ki o tẹ bọtini ni igun apa ọtun oke Ṣẹda ti ikede. Ni iṣẹju diẹ ti ikede iṣẹ naa yoo ṣẹda. Laipẹ lẹhin idanwo webhook, a yoo ṣẹda titun kan ti ikede - Awọn ero Smart.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Ibi ipamọ nkan

Bayi ti a ti ṣẹda Yandex iṣẹ, wa lori, nigba ti a ba wa ni console Yandex.Cloud, jẹ ki ká ṣẹda awọn ti a npe ni garawa (garawa, i.e. garawa ni Russian, kii ṣe oorun didun rara) fun titoju awọn faili aworan ti yoo ṣee lo ninu bot wa Awọn ero Smart. Ninu akojọ aṣayan lilọ kiri osi yan ohun kan Ibi apamọ, tẹ bọtini naa Ṣẹda garawa kan, wá pẹlu orukọ kan fun, fun apẹẹrẹ, img-garawaati, pataki julọ, Ka wiwọle si awọn nkan A jẹ ki o wa ni gbangba - bibẹẹkọ Telegram kii yoo rii awọn aworan wa. A fi gbogbo awọn aaye miiran silẹ ko yipada. Tẹ bọtini naa Ṣẹda garawa kan.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Lẹhin eyi, atokọ ti gbogbo awọn garawa le dabi iru eyi (ti eyi ba jẹ garawa rẹ nikan):

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Bayi Mo daba tite lori orukọ ti garawa ati ṣiṣẹda folda kan ninu rẹ lati ṣeto ibi ipamọ ti awọn aworan fun awọn ohun elo oriṣiriṣi rẹ. Fun apẹẹrẹ, fun bot telegram kan Awọn ero Smart Mo ṣẹda folda ti a pe tg-bot-ọlọgbọn-ero (ko si ohun, Emi yoo ye yi koodu). Ṣẹda ọkan paapaa.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Bayi o le tẹ orukọ folda, lọ sinu rẹ ki o gbe awọn faili:

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Ati nipa tite lori orukọ faili - gba URL fun lilo ninu bot wa, ati ni gbogbogbo - nibikibi (ṣugbọn ko ṣe atẹjade eyi URL kobojumu, niwon ijabọ lati Ibi ipamọ nkan gba agbara).

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Ti o ni besikale gbogbo nibẹ ni lati o Ibi ipamọ nkan. Bayi iwọ yoo mọ kini lati ṣe nigbati o ba rii itọsi lati gbe awọn faili sibẹ.

Webhook

Bayi a yoo fi sori ẹrọ webhook - i.e. nigbati bot ba gba imudojuiwọn (fun apẹẹrẹ, ifiranṣẹ lati ọdọ olumulo) lati olupin naa Telegram si wa Yandex iṣẹ ìbéèrè yoo wa ni rán (ìbéèrè) pẹlu data. Eyi ni laini kan ti o le rọrun lẹẹmọ sinu aaye adirẹsi aṣawakiri rẹ lẹhinna sọ oju-iwe naa sọ (o ni lati ṣe eyi ni ẹẹkan): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
A kan yoo paarọ rẹ {bot_token} si aami ti a gba lati baba bot nigba ti o ba ṣẹda wa bot, ati {webhook_url} - lori URL wa Awọn iṣẹ Yandex. Duro fun iseju kan! Sugbon RossKomTsenzur ṣe idiwọ awọn olupese ni Russian Federation lati ṣiṣẹ adirẹsi naa https://api.telegram.org. Beeni ooto ni. Ṣugbọn wá soke pẹlu nkankan. Lẹhin gbogbo ẹ, o le, fun apẹẹrẹ, beere lọwọ iya-nla rẹ nipa eyi ni Ukraine, Israeli tabi Canada - ko si “Rosskomcensorship” nibẹ, ati pe Ọlọrun nikan mọ bi eniyan ṣe n gbe laisi rẹ. Bi abajade, idahun ibeere nigba fifi sori ẹrọ wẹẹbu yẹ ki o dabi eyi:

Ṣiṣe bot Telegram kan ni Yandex.Cloud

A n danwo. O yẹ ki o "digi".

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Eyi jẹ otitọ. Oriire wa - ni bayi Yandex iṣẹ di Telegram- bot!

Awọn ero Smart

Bayi jẹ ki ká ṣe Smart ero. Awọn koodu ti wa ni sisi ati ki o dubulẹ lori GitHub. O jẹ asọye daradara daradara ati pe o jẹ laini ọgọrun nikan ni gigun. Ka bi ohun opera diva libretto!

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Di iṣẹ akanṣe naa ki o fi awọn igbẹkẹle sii:

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

Ṣe awọn ayipada ti o nilo si faili naa atọka.js (aṣayan; o ko ni lati yi ohunkohun pada). Ṣẹda zip- pamosi, pẹlu faili atọka.js ati folda node_modulu inu, fun apẹẹrẹ, labẹ awọn orukọ smart.zip.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Bayi lọ si console si wa Awọn iṣẹ Yandex, yan taabu ZIP pamosi, tẹ bọtini naa Yan faili kan, ati gba lati ayelujara wa pamosi smart.zip. Ni ipari, ni igun apa ọtun oke, tẹ bọtini naa Ṣẹda ti ikede.

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Ni iṣẹju diẹ, nigbati iṣẹ naa ba ti ni imudojuiwọn, a yoo tun ṣe idanwo bot wa lẹẹkansi. Bayi o ko si ohun to "digi", ṣugbọn gbà smati ero!

Ṣiṣe bot Telegram kan ni Yandex.Cloud

Iyẹn ni gbogbo fun oni. Awọn nkan diẹ sii tẹle. Ti o ba nifẹ lati ka eyi, ṣe alabapin si awọn iwifunni nipa awọn nkan tuntun. O le ṣe alabapin nibi, tabi ni Telegram-ikanni IT Tutorial Zakhartabi twitter @mikezaharov.

jo

Koodu lori GitHub
Awọn iṣẹ awọsanma Yandex
Ibi ipamọ Nkan Yandex
Bots: Ohun ifihan fun kóòdù
Telegram Bot API

Awọn ẹbun

Ṣiṣe bot Telegram kan ni Yandex.Cloud

orisun: www.habr.com

Fi ọrọìwòye kun