Å odien mÄs apkoposim no improvizÄtiem materiÄliem https://api.telegram.org/
. Nu, mÄs to nedarÄ«sim - nÄ, nÄ. PatieÅ”Äm, mÅ«su somÄ ir t.s. tÄ«mekļa aizÄ·eres - ar viÅu palÄ«dzÄ«bu mÄs neveicam pieprasÄ«jumus uz konkrÄtu adresi, bet tikai nosÅ«tÄm savu pieprasÄ«jumu kÄ atbildi uz jebkuru pieprasÄ«jumu mums. Tas ir, kÄ OdesÄ - mÄs atbildam uz jautÄjumu ar jautÄjumu. TÄpÄc Telegram API neparÄdÄ«sies mÅ«su kodÄ.
AtrunaJebkuru Å”ajÄ rakstÄ minÄto valsts organizÄciju nosaukumi ir fiktÄ«vi, un iespÄjamÄs sakritÄ«bas ar reÄlÄs dzÄ«ves organizÄciju nosaukumiem ir nejauÅ”as.
TÄtad, mÄs izveidosim robotu, kas mÅ«s apgÄdÄs ar gudrÄm domÄm. TieÅ”i kÄ attÄlÄ:
Varat to izmÄÄ£inÄt darbÄ«bÄ - Å”eit ir nosaukums: @SmartThoughtsBot. IevÄrojiet pogu "Alises prasme"? Tas ir tÄpÄc, ka robots ir sava veida "biedrs" tÄda paÅ”a nosaukuma vÄrdam Alises prasme, t.i. tas veic tÄdas paÅ”as funkcijas kÄ Alises prasme un, iespÄjams, ka viÅi var mierÄ«gi lÄ«dzÄspastÄvÄt, reklamÄjot viens otru. Par to, kÄ izveidot Gudras domas prasme aprakstÄ«ts rakstÄ
Botu izveide
GribÄtos, lai Ŕī pamÄcÄ«ba bÅ«tu noderÄ«ga ikvienam, t.sk. un iesÄcÄju "botu bÅ«vÄtÄji". TÄpÄc Å”ajÄ sadaÄ¼Ä es detalizÄti aprakstÄ«Å”u, kÄ kopumÄ izveidot Telegramroboti. Tiem, kam Ŕī informÄcija nav nepiecieÅ”ama, pÄrejiet pie nÄkamajÄm sadaļÄm.
Atveriet lietojumprogrammu Telegaram, mÄs saucam par visu robotu tÄvu (viÅiem viss ir kÄ cilvÄkiem) - @BotFather - un sÄkumÄ mÄs viÅam dosim komandu / palÄ«dzÄt, lai atsvaidzinÄtu mÅ«su atmiÅu par to, ko mÄs varam darÄ«t. Tagad mÅ«s interesÄ komanda / newbot.
TÄ kÄ Å”eit aprakstÄ«tais bots jau ir izveidots, demonstrÄcijas nolÅ«kos uz Ä«su brÄ«di izveidoÅ”u vÄl vienu botu (tad izdzÄsÄ«Å”u). Es viÅam piezvanÄ«Å”u DemoHabrBot. VÄrdi (lietotÄjvÄrds) visiem telegrammu robotiem jÄbeidzas ar vÄrdu cÄrme, piemÄram: MyCoolBot vai my_cool_bot Tas ir paredzÄts robotiem. Bet vispirms dodiet robotam nosaukumu (nosaukums) ir paredzÄts cilvÄkiem. Nosaukums var bÅ«t jebkurÄ valodÄ, satur atstarpes, tam nav jÄbeidzas ar vÄrdu cÄrme, un tai pat nav jÄbÅ«t unikÄlam. Å ajÄ piemÄrÄ es saucu Å”o robotprogrammu Demo Habr.
Tagad izvÄlieties robota nosaukumu (lietotÄjvÄrds, robotiem paredzÄtais). Sauksim to DemoHabrBot. Viss, kas saistÄ«ts ar robota nosaukumu (nosaukums) vispÄr nav saistÄ«ts ar viÅa vÄrdu - lietotÄjvÄrds (vai attiecas, bet tieÅ”i otrÄdi). PÄc veiksmÄ«gas unikÄla robota nosaukuma izveides mums ir jÄkopÄ un jÄsaglabÄ (stingrÄkajÄ pÄrliecÄ«bÄ!) ekrÄnuzÅÄmumÄ redzamais marÄ·ieris ar sarkanu bultiÅu. Ar tÄs palÄ«dzÄ«bu mÄs vÄlÄk uzstÄdÄ«sim izejoÅ”o Telegram'tÄ«mekļa aizÄ·ere mÅ«su Yandex funkcija.
Un tagad mÄs dosim komandu visu botu tÄvam: /mybotsun tas parÄdÄ«s visu mÅ«su izveidoto robotprogrammatÅ«ru sarakstu. PagaidÄm atstÄsim tikko izcepto botu mierÄ Demo Habr (tas tika izveidots, lai parÄdÄ«tu, kÄ izveidot robotus, bet mÄs to Å”odien izmantosim citiem demonstrÄcijas mÄrÄ·iem), un apsveriet robotu Gudras domas (@SmartThoughtsBot). Botu sarakstÄ noklikŔķiniet uz pogas ar tÄs nosaukumu.
Å eit mÄs varam iestatÄ«t savu robotprogrammatÅ«ru. Nospiežot pogu RediÄ£Ät ... mÄs pÄriesim pie vienas vai otras opcijas rediÄ£ÄÅ”anas. PiemÄram, noklikŔķinot uz pogas RediÄ£Ät vÄrdu mÄs varam mainÄ«t robota nosaukumu, teiksim tÄ vietÄ Gudras domas, rakstiet trakas idejas. Botpic - tas ir robota iemiesojums, tam jÄbÅ«t vismaz 150 x 150 pikseļi. Apraksts ir Ä«ss apraksts, ko lietotÄjs redz, kad robots tiek palaists pirmo reizi, kÄ atbildi uz jautÄjumu: Ko Å”is robots var darÄ«t? Par mums - vÄl Ä«sÄks apraksts, kas tiek pÄrsÅ«tÄ«ts ar saiti uz robotu (https://t.me/SmartThoughtsBot
) vai skatot informÄciju par to.
Mums vienkÄrÅ”i jÄiestata komandas. Lai to izdarÄ«tu, nospiediet pogu RediÄ£Ät komandas. StandartizÄt lietotÄju praksi Telegram iesaka vienmÄr izmantot divas komandas: /sÄkt Šø / palÄ«dzÄ«ba, un, ja robotam ir nepiecieÅ”ami iestatÄ«jumi, papildu komanda /settings. MÅ«su robots ir tikpat vienkÄrÅ”s kÄ bumbiÅa, tÄpÄc tam vÄl nav nepiecieÅ”ami nekÄdi iestatÄ«jumi. MÄs rakstÄm pirmÄs divas komandas, kuras pÄc tam apstrÄdÄsim kodÄ. Tagad, ja lietotÄjs ievades laukÄ ievada slÄ«psvÄ«tru (slÄ«psvÄ«tru: /), tiks parÄdÄ«ts komandu saraksts viÅu Ätrai atlasei. Viss ir kÄ attÄlÄ: pa kreisi - mÄs iestatÄm komandas caur bot-tÄvu; labajÄ pusÄ Å”Ä«s komandas jau ir pieejamas lietotÄjiem mÅ«su robotprogrammÄ.
Yandex funkcija
Tagad, kad mÅ«su robots ir izveidots, pÄriesim pie Yandex.Cloudlai izveidotu funkciju, kas izpildÄ«s mÅ«su robota kodu. Ja neesat strÄdÄjis ar Yandex.Cloud izlasi materiÄlu
TÄtad konsolÄ Yandex.MÄkoÅi kreisajÄ navigÄcijas izvÄlnÄ atlasiet vienumu MÄkoÅu funkcijas, un pÄc tam nospiediet pogu Izveidojiet funkciju. MÄs pieŔķiram tam nosaukumu, un sev - Ä«su aprakstu.
PÄc pogas nospieÅ”anas izveidot un pÄc pÄris sekundÄm jaunÄ funkcija parÄdÄ«sies visu funkciju sarakstÄ. NoklikŔķiniet uz viÅas vÄrda - tas mÅ«s aizvedÄ«s uz lapu PÄrskatiet mÅ«su funkcija. Å eit jums ir jÄiespÄjoOn) slÄdzis sabiedriskÄ funkcijalai padarÄ«tu to pieejamu no ÄrÄjÄs (par Yandex.MÄkoÅi) no pasaules un lauku vÄrtÄ«bu Saite uz zvanu Šø ID - turiet to dziÄ¼Ä noslÄpumÄ no visiem, izÅemot sevi un Telegram, lai dažÄdi blÄži nevarÄtu izsaukt jÅ«su funkciju.
Tagad, izmantojot kreiso izvÄlni, dodieties uz Redaktors funkcijas. Uz brÄ«di noliksim malÄ mÅ«su Gudras domas, un izveidojiet minimÄlu veidnes funkciju, lai pÄrbaudÄ«tu mÅ«su robota veiktspÄju ... TomÄr Å”ajÄ kontekstÄ Å”Ä« funkcija ir mÅ«su robots ... ÄŖsÄk sakot, tagad un tieÅ”i Å”eit mÄs izveidosim vienkÄrÅ”Äko robotu, kas "atspoguļos" ( i., nosÅ«tÄ«t atpakaļ ) lietotÄju pieprasÄ«jumus. Å o veidni vienmÄr var izmantot, veidojot jaunus telegrammu robotus, lai nodroÅ”inÄtu saziÅu ar Telegrammaom darbojas labi. KlikŔķis Izveidot failu, sauc to index.js, un tieÅ”saistÄ Koda redaktors ielÄ«mÄjiet Å”o kodu Å”ajÄ failÄ:
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 konsolÄ tam vajadzÄtu izskatÄ«ties apmÄram Å”Ädi:
ZemÄk mÄs norÄdÄm Ieejas punkts SÄkot no index.botKur indekss Å”is ir faila nosaukums (index.js) un cÄrme - funkcijas nosaukums (module.exports.bot). AtstÄjiet visus pÄrÄjos laukus "kÄ ir" un augÅ”ÄjÄ labajÄ stÅ«rÄ« noklikŔķiniet uz pogas Izveidot versiju. PÄc dažÄm sekundÄm tiks izveidota Ŕī funkcijas versija. DrÄ«z pÄc pÄrbaudes tÄ«mekļa aizÄ·ere, mÄs izveidosim jaunu versiju ā Gudras domas.
Objektu glabÄÅ”ana
Tagad, kad esam iestatÄ«juÅ”i Yandex funkcijaiesim, kamÄr esam konsolÄ Yandex.MÄkoÅi, izveidot tÄ saukto. spainis (spainis, t.i. spainis krievu valodÄ, nekÄdÄ gadÄ«jumÄ nav puŔķis) attÄlu failu glabÄÅ”anai, kas tiks izmantoti mÅ«su robotÄ Gudras domas. KreisajÄ navigÄcijas izvÄlnÄ atlasiet Objektu glabÄÅ”ana, nospiediet pogu Izveidojiet spaini, pieŔķiriet tai nosaukumu, piemÄram, img-spainis, un, pats galvenais, LasÄ«Å”anas piekļuve objektiem padariet to publisku - pretÄjÄ gadÄ«jumÄ Telegram neredzÄs mÅ«su attÄlus. Visi pÄrÄjie lauki tiek atstÄti nemainÄ«ti. Nospiežam pogu Izveidojiet spaini.
PÄc tam visu segmentu saraksts varÄtu izskatÄ«ties apmÄram Å”Ädi (ja Å”is ir jÅ«su vienÄ«gais segments):
Tagad es ierosinu noklikŔķinÄt uz kausa nosaukuma un tajÄ izveidot mapi, lai sakÄrtotu attÄlu glabÄÅ”anu dažÄdÄm lietojumprogrammÄm. PiemÄram, telegrammas robotam Gudras domas es izveidoju mapi ar nosaukumu tg-bot-smart-thoughts (Nekas, es sapratÄ«Å”u Å”o Å”ifru). Izveidojiet arÄ« tÄdu.
Tagad varat noklikŔķinÄt uz mapes nosaukuma, ieiet tajÄ un augÅ”upielÄdÄt failus:
Un noklikŔķinot uz faila nosaukuma - iegÅ«stiet to URL izmantoÅ”anai mÅ«su robotprogrammÄ un vispÄr - jebkur (bet nepublicÄjiet to URL nevajadzÄ«gi, jo satiksme no objektu uzglabÄÅ”ana uzlÄdÄts).
LÅ«k, patiesÄ«bÄ, tas arÄ« viss objektu uzglabÄÅ”ana. Tagad jÅ«s zinÄt, ko darÄ«t, kad redzat uzvedni augÅ”upielÄdÄt failus.
Web aizÄ·ere
Tagad mÄs instalÄsim tÄ«mekļa aizÄ·ere ā t.i. kad robots saÅem atjauninÄjumu (piemÄram, ziÅojumu no lietotÄja), no servera Telegram mÅ«su Yandex funkcija pieprasÄ«jums tiks nosÅ«tÄ«tspieprasÄ«t) ar datiem. Å eit ir virkne, kuru varat vienkÄrÅ”i ielÄ«mÄt pÄrlÅ«kprogrammas adreses laukÄ un pÄc tam atsvaidzinÄt lapu (tas ir jÄdara tikai vienu reizi): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
VienkÄrÅ”i nomainiet {bot_token} uz marÄ·ieri, ko saÅÄmÄm no tÄva robota, veidojot savu robotprogrammatÅ«ru, un {webhook_url} - ieslÄgts URL mÅ«su Yandex funkcijas. Uzgaidi minÅ«ti! Bet RossKomCenzÅ«ra aizliedz pakalpojumu sniedzÄjiem Krievijas FederÄcijÄ sniegt adresi https://api.telegram.org
. JÄ, tieÅ”i tÄ. Bet jÅ«s varat kaut ko izdomÄt. Galu galÄ, jÅ«s varat, piemÄram, pajautÄt vecmÄmiÅai par to UkrainÄ, IzraÄlÄ vai KanÄdÄ - tur nav "krievu cenzÅ«ras", un tikai Dievs zina, kÄ cilvÄki bez tÄs dzÄ«vo. RezultÄtÄ pieprasÄ«jumam-atbildei, instalÄjot tÄ«mekļa aizÄ·eri, vajadzÄtu izskatÄ«ties Å”Ädi:
TestÄÅ”ana. JÄatspoguļo.
TÄ ir patiesÄ«ba. Apsveicam - tagad Yandex funkcija ir kļuvusi Telegram- bot!
Gudras domas
Un tagad mÄs veicam viedÄs domas. Kods ir atvÄrts un atrodas
KlonÄjiet projektu un instalÄjiet atkarÄ«bas:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Veiciet failÄ nepiecieÅ”amÄs izmaiÅas index.js (pÄc izvÄles; jÅ«s nevarat neko mainÄ«t). Izveidot rÄvÄjslÄdzÄjs-arhÄ«vs, ar failu index.js un mapi mezgla_moduļi iekÅ”Ä, piemÄram, sauc smart.zip.
Tagad dodieties konsolÄ uz mÅ«su Yandex funkcijas, atlasiet cilni ZIP arhÄ«vs, nospiediet pogu IzvÄlieties failuun lejupielÄdÄjiet mÅ«su arhÄ«vu smart.zip. Visbeidzot, augÅ”ÄjÄ labajÄ stÅ«rÄ« noklikŔķiniet uz pogas Izveidot versiju.
PÄc dažÄm sekundÄm, kad funkcija tiks atjauninÄta, mÄs vÄlreiz pÄrbaudÄ«sim mÅ«su robotprogrammatÅ«ru. Tagad viÅÅ” vairs āneatspoguļoā, bet sniedz gudras domas!
Tas Å”odienai viss. TÄlÄk seko citi raksti. Ja jÅ«s interesÄ lasÄ«t Å”o, abonÄjiet paziÅojumus par jauniem rakstiem. AbonÄt var Å”eit vai Telegram- kanÄls
atsauces
Ziedojumi
Avots: www.habr.com