Bini ta' bot Telegram f'Yandex.Cloud

Bini ta' bot Telegram f'Yandex.Cloud

Illum, minn materjali skreppjati, se niġbru Yandex.Cloud Telegram bot bl-użu Funzjonijiet ta' Yandex Cloud (Jew funzjonijiet Yandex - fil-qosor) u Ħażna ta 'Oġġetti Yandex (Jew Ħażna ta' oġġetti - għaċ-ċarezza). Il-kodiċi se jkun mixgħul Node.js. Madankollu, hemm ċirkustanza waħda pikkanti - ċerta organizzazzjoni msejħa, ejja ngħidu, RossKomTsenzur (iċ-ċensura hija pprojbita mill-Artikolu 29 tal-Kostituzzjoni tal-Federazzjoni Russa), ma tippermettix lill-fornituri tal-Internet Russi jittrasmettu talbiet lil Telegram API fl-indirizz: https://api.telegram.org/. Ukoll, aħna mhux se - le, le. Wara kollox, fil-borża tagħna hemm hekk imsejħa. webhooks — bl-għajnuna tagħhom, aħna ma nagħmlux talbiet lil indirizz speċifiku, iżda sempliċement nibagħtu t-talba tagħna bħala tweġiba għal kwalunkwe talba lilna. Jiġifieri, bħal f'Odessa, aħna nwieġbu mistoqsija b'mistoqsija. Għalhekk Telegram API mhux se jidher fil-kodiċi tagħna.

ĊaħdaL-ismijiet ta 'kwalunkwe organizzazzjonijiet tal-gvern imsemmija f'dan l-artikolu huma fittizji, u taqbiliet possibbli ma' l-ismijiet ta 'organizzazzjonijiet tal-ħajja reali huma koinċidenza.

Għalhekk, aħna se nagħmlu bot li jagħtina ħsibijiet intelliġenti. Eżattament bħal fl-istampa:

Bini ta' bot Telegram f'Yandex.Cloud

Tista' tipprovaha fl-azzjoni - hawn hu l-isem: @SmartThoughtsBot. Innutat il-buttuna "Il-Ħila ta' Alice"? Dan għaliex il-bot huwa tip ta '"kumpann" għall-bot tal-istess isem. Il-ħila ta’ Alice, i.e. iwettaq l-istess funzjonijiet bħal Il-ħila ta’ Alice u jista’ jkun li jkunu jistgħu jikkoeżistu b’mod paċifiku billi jirreklamaw lil xulxin. Dwar kif toħloq ħiliet Ħsibijiet Intelliġenti deskritt fl-artiklu Alice tikseb ħiliet. Issa (wara li tagħmel xi bidliet wara l-pubblikazzjoni tal-artikolu ta 'hawn fuq) fuq l-ismartphone dan ħila se tidher xi ħaġa bħal din:

Bini ta' bot Telegram f'Yandex.Cloud

Ħolqien ta' bot

Nixtieq li dan it-tutorja jkun utli għal kulħadd, inkl. u bennejja bot novizzi. Għalhekk, f'din it-taqsima ser niddeskrivi f'xi dettall kif toħloq b'mod ġenerali Telegramma'e bots. Għal dawk li ma jeħtiġux din l-informazzjoni, ipproċedi għat-taqsimiet li ġejjin.

Iftaħ l-applikazzjoni Telegaram, ejja nsejħu lill-missier tal-bots kollha (għandhom kollox bħal nies) - @BotFather - u l-ewwel nagħtuh il-kmand /help biex iġedded il-memorja tiegħu ta’ dak li nistgħu nagħmlu. Issa se nkunu interessati fit-tim / newbot.

Bini ta' bot Telegram f'Yandex.Cloud

Peress li l-bot deskritt hawn diġà nħoloq, għal skopijiet ta 'dimostrazzjoni se noħloq bot ieħor għal żmien qasir (u mbagħad inħassarha). Jiena nsejjaħlu DemoHabrBot. Ismijiet (username) tal-bots tat-telegramma kollha għandhom jispiċċaw bil-kelma botper eżempju: MyCoolBot jew my_cool_bot - dan huwa għall-bots. Imma l-ewwel nagħtu isem lill-bot (isem) - u dan huwa għan-nies. L-isem jista' jkun fi kwalunkwe lingwa, ikun fih spazji, u m'għandux għalfejn jispiċċa b'kelma bot, u lanqas m'għandux għalfejn ikun uniku. F'dan l-eżempju, sejjaħ dan il-bot Demo Habr.

Bini ta' bot Telegram f'Yandex.Cloud

Issa agħżel isem għall-bot (username, dak għall-bots). Ejja nsejħulu DemoHabrBot. Dak kollu relatat mal-isem tal-bot (isem) m'għandu x'jaqsam xejn ma' ismu - username (jew japplika, iżda eżattament l-oppost). Wara li ħoloq b'suċċess isem tal-bot uniku, għandna bżonn nikkopjaw u niffrankaw (bl-aktar kunfidenza stretta!) It-token muri fil-screenshot bi vleġġa ħamra. Bl-għajnuna tagħha aktar tard nistabbilixxu l-oriġinanti Telegramma'webhook għal tagħna Funzjoni Yandex.

Bini ta' bot Telegram f'Yandex.Cloud

Issa ejja nagħtu l-kmand lill-missier tal-bots kollha: /mybots, u se jurina lista tal-bots kollha li ħloqna. Ejja nħallu l-bot moħmi frisk waħdu għalissa Demo Habr (inħoloq biex turi kif toħloq bots, iżda aħna se nużawh ukoll illum għal skopijiet oħra ta 'dimostrazzjoni), u ejja nħarsu lejn il-bot Ħsibijiet Intelliġenti (@SmartThoughtsBot). Ikklikkja l-buttuna bl-isem tagħha fil-lista tal-bots.

Bini ta' bot Telegram f'Yandex.Cloud

Hawnhekk nistgħu nikkonfiguraw il-bot tagħna. Billi tagħfas il-buttuna Editja ... Se ngħaddu għall-editjar ta' għażla waħda jew oħra. Per eżempju, billi tikklikkja fuq il-buttuna Edit Isem nistgħu nibdlu l-isem tal-bot, ngħidu minflok Ħsibijiet Intelliġenti, ikteb Ideat Miġnun. Botpic - dan huwa l-avatar tal-bot, għandu jkun mill-inqas 150 x 150 px. deskrizzjoni — din hija deskrizzjoni qasira li l-utent jara meta jibda l-bot għall-ewwel darba, bħala tweġiba għall-mistoqsija: X'jista' jagħmel dan il-bot? dwar — deskrizzjoni saħansitra aktar fil-qosor, li tiġi trażmessa b'link għall-bot (https://t.me/SmartThoughtsBot) jew meta tara informazzjoni dwarha.

Bini ta' bot Telegram f'Yandex.Cloud

Kulma rridu nagħmlu hu li nwaqqfu l-kmandi. Biex tagħmel dan, agħfas il-buttuna Editja Kmandi. Biex tistandardizza l-prattika tal-utent Telegramma jirrakkomanda li dejjem tuża żewġ kmandi: / ibda и / għajnuna, u jekk il-bot jeħtieġ settings, uża l-kmand addizzjonali /settings. Il-bot tagħna huwa sempliċi daqs ballun, għalhekk għadu m'għandux bżonn l-ebda settings. Aħna niktbu l-ewwel żewġ kmandi, li mbagħad nipproċessaw fil-kodiċi. Issa, jekk l-utent idaħħal slash (sinjal slash: /) fil-qasam tad-dħul, se tidher lista ta 'kmandi għal għażla ta' malajr. Kollox huwa bħal fl-istampa: fuq ix-xellug - ninstallaw kmandi permezz tal-bot missier; fuq il-lemin, dawn il-kmandi diġà huma disponibbli għall-utenti fil-bot tagħna.

Bini ta' bot Telegram f'Yandex.Cloud

Funzjoni Yandex

Issa li l-bot tagħna nħoloq, ejja mmorru Yandex.Cloudbiex toħloq funzjoni li tesegwixxi l-kodiċi tal-bot tagħna. Jekk ma ħdimtx magħhom Yandex.Cloud aqra l-materjal Alice fl-Art ta’ Bitrix, imbagħad - Il-funzjonijiet Yandex jibagħtu posta. Jien pjuttost ċert li dawn iż-żewġ artikli relattivament qosra jkunu biżżejjed biex ikollok fehim bażiku tas-suġġett.

Allura fil-console Yandex.Cloud fil-menu tan-navigazzjoni tax-xellug agħżel l-oġġett Funzjonijiet tas-Sħaba, u mbagħad agħfas il-buttuna Oħloq funzjoni. Nagħtuha isem u deskrizzjoni qasira għalina nfusna.

Bini ta' bot Telegram f'Yandex.Cloud

Wara li tagħfas il-buttuna joħolqu u wara ftit sekondi, il-funzjoni l-ġdida se tidher fil-lista tal-funzjonijiet kollha. Ikklikkja fuq isimha - dan iwassalna għall-paġna Reviżjoni il-funzjoni tagħna. Hawnhekk għandek bżonn tattiva (On) swiċċ Funzjoni pubblikasabiex isir aċċessibbli minn barra (għal Yandex.Cloud) tad-dinja, u t-tifsira tal-oqsma Sejħa link и Identifikatur — żommha sigrieta ħafna minn kulħadd ħlief lilek innifsek u Telegram, sabiex il-funzjoni tiegħek ma tkunx tista’ tissejjaħ minn diversi scammers.

Bini ta' bot Telegram f'Yandex.Cloud

Issa, billi tuża l-menu tax-xellug, mur L-editur funzjonijiet. Ejja nwarrbu għal mument tagħna Ħsibijiet Intelliġenti, u toħloq funzjoni ta' mudell minimu biex tiċċekkja l-funzjonalità tal-bot tagħna... Madankollu, f'dan il-kuntest, din il-funzjoni hija l-bot tagħna... Fil-qosor, issa u hawnhekk se nagħmlu bot sempliċi li se "mera" ( jiġifieri ibgħat lura) it-talbiet tal-utent. Dan il-mudell jista 'dejjem jintuża meta jinħolqu bots telegramma ġodda biex tiżgura li l-komunikazzjoni ma' Telegramma'ohm jaħdem tajjeb. Ikklikkja Oħloq fajl, ejja nsejħulu index.js, u online Editur tal-kodiċi waħħal il-kodiċi li ġej f'dan il-fajl:

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

Fil-console Yandex.Cloud għandha tidher xi ħaġa bħal din:

Bini ta' bot Telegram f'Yandex.Cloud

Aktar hawn taħt nindikaw Punt tad-dħul - indiċi.botfejn indiċi dan huwa l-isem tal-fajl (index.js), u bot - isem tal-funzjoni (module.exports.bot). Ħalli l-oqsma l-oħra kollha kif inhuma, u kklikkja l-buttuna fir-rokna ta' fuq tal-lemin Oħloq verżjoni. Fi ftit sekondi se tinħoloq din il-verżjoni tal-funzjoni. Ftit wara l-ittestjar webhook, se noħolqu verżjoni ġdida − Ħsibijiet Intelliġenti.

Bini ta' bot Telegram f'Yandex.Cloud

Ħażna ta' oġġetti

Issa li ħloqna Funzjoni Yandex, ejja, waqt li nkunu fil-console Yandex.Cloud, ejja noħolqu l-hekk imsejħa barmil (barmil, i.e. barmil bir-Russu, mhux bukkett xejn) għall-ħażna ta 'fajls tal-immaġni li se jintużaw fil-bot tagħna Ħsibijiet Intelliġenti. Fil-menu tan-navigazzjoni tax-xellug agħżel l-oġġett Ħażna ta 'Oġġetti, agħfas il-buttuna Oħloq barmil, toħroġ b'isem għalih, pereżempju, img-barmil, u, l-aktar importanti, Aqra aċċess għall-oġġetti Nagħmluha pubblika - inkella Telegram ma tarax l-istampi tagħna. Inħallu l-oqsma l-oħra kollha mhux mibdula. Agħfas il-buttuna Oħloq barmil.

Bini ta' bot Telegram f'Yandex.Cloud

Wara dan, il-lista tal-bramel kollha tista' tidher xi ħaġa bħal din (jekk dan huwa l-uniku barmil tiegħek):

Bini ta' bot Telegram f'Yandex.Cloud

Issa nissuġġerixxi li tikklikkja fuq l-isem tal-barmil u toħloq folder ġewwa biex torganizza l-ħażna ta 'immaġini għall-applikazzjonijiet differenti tiegħek. Per eżempju, għal telegram bot Ħsibijiet Intelliġenti Ħloqt folder imsejjaħ tg-bot-smart-thoughts (xejn, se nifhem dan il-kodiċi). Oħloq wieħed ukoll.

Bini ta' bot Telegram f'Yandex.Cloud

Issa tista 'tikklikkja fuq l-isem tal-folder, mur fih u ttella' fajls:

Bini ta' bot Telegram f'Yandex.Cloud

U billi tikklikkja fuq l-isem tal-fajl - ġġibu URL għall-użu fil-bot tagħna, u b'mod ġenerali - kullimkien (iżda ma tippubblikax dan URL bla bżonn, peress li t-traffiku minn Ħażna ta' oġġetti mitluba).

Bini ta' bot Telegram f'Yandex.Cloud

Dan huwa bażikament kull ma hemm għaliha Ħażna ta' oġġetti. Issa tkun taf x'għandek tagħmel meta tara pront biex ittella 'fajls hemmhekk.

Webhook

Issa aħna se ninstallaw webhook - i.e. meta l-bot jirċievi aġġornament (per eżempju, messaġġ minn utent) mis-server Telegramma lil tagħna Funzjoni Yandex tintbagħat talba (jitlob) bid-data. Hawnhekk hawn linja li tista' sempliċement tippejstja fil-qasam tal-indirizz tal-browser tiegħek u mbagħad aġġorna l-paġna (int għandek tagħmel dan darba biss): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Aħna ser nibdluha biss {bot_token} għat-token li rċevejna mingħand il-bot missier meta ħoloq il-bot tagħna, u {webhook_url} - fuq URL tagħna funzjonijiet Yandex. Stenna minuta! Iżda RossKomTsenzur jipprojbixxi lill-fornituri fil-Federazzjoni Russa milli jagħtu servizz lill-indirizz https://api.telegram.org. Iva, hekk hu. Imma toħroġ b'xi ħaġa. Wara kollox, tista ', pereżempju, tistaqsi lin-nanna tiegħek dwar dan fl-Ukrajna, l-Iżrael jew il-Kanada - m'hemm l-ebda "Rosskomcensorship" hemmhekk, u Alla biss jaf kif in-nies jgħixu mingħajrha. Bħala riżultat, it-talba-rispons meta tinstalla webhook għandha tidher bħal din:

Bini ta' bot Telegram f'Yandex.Cloud

Aħna qed nittestjaw. Għandu "mera".

Bini ta' bot Telegram f'Yandex.Cloud

Dan huwa minnu. Prosit tagħna - issa Funzjoni Yandex sar Telegramma-bot!

Ħsibijiet Intelliġenti

Issa ejja nagħmlu Ħsibijiet Intelliġenti. Il-kodiċi huwa miftuħ u jinsab fuq GitHub. Huwa kkummentat pjuttost tajjeb u huwa twil biss mitt linja. Aqrah bħal libretto ta’ diva tal-opra!

Bini ta' bot Telegram f'Yandex.Cloud

Ikklonja l-proġett u installa dipendenzi:

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

Agħmel il-bidliet li għandek bżonn fil-fajl index.js (mhux obbligatorju; m'għandekx għalfejn tbiddel xejn). Oħloq zip-arkivju, bil-fajl index.js u folder node_modules ġewwa, pereżempju, taħt l-isem smart.zip.

Bini ta' bot Telegram f'Yandex.Cloud

Issa mur fil-console għal tagħna funzjonijiet Yandex, agħżel tab Arkivju ZIP, agħfas il-buttuna Agħżel fajl, u niżżel l-arkivju tagħna smart.zip. Fl-aħħarnett, fir-rokna ta 'fuq tal-lemin, ikklikkja l-buttuna Oħloq verżjoni.

Bini ta' bot Telegram f'Yandex.Cloud

Fi ftit sekondi, meta l-funzjoni tiġi aġġornata, nerġgħu nittestjaw il-bot tagħna. Issa m'għadux "mirja", iżda jagħti ħsibijiet intelliġenti!

Bini ta' bot Telegram f'Yandex.Cloud

Dak kollu għal-lum. Aktar artikli jsegwu. Jekk inti interessat li taqra dan, abbona għan-notifiki dwar artikli ġodda. Tista' tabbona hawn, jew fuq Telegramma-kanal IT Tutorial ZakharJew twitter @mikezaharov.

referenzi

Kodiċi fuq GitHub
Funzjonijiet ta' Yandex Cloud
Ħażna ta 'Oġġetti Yandex
Bots: Introduzzjoni għall-iżviluppaturi
Telegram Bot API

Donazzjonijiet

Bini ta' bot Telegram f'Yandex.Cloud

Sors: www.habr.com

Żid kumment