Sot, nga materialet e improvizuara, ne do të mbledhim në https://api.telegram.org/
. Epo, nuk do ta bëjmë - jo, jo. Në të vërtetë, në çantën tonë ka të ashtuquajturat. webhooks - Me ndihmën e tyre, ne nuk bëjmë kërkesa në një adresë të caktuar, por vetëm dërgojmë kërkesën tonë si përgjigje për çdo kërkesë tek ne. Kjo është, si në Odessa - ne i përgjigjemi një pyetjeje me një pyetje. Kjo është arsyeja pse Telegram API nuk do të shfaqet në kodin tonë.
PërgjegjësiaEmrat e çdo organizate shtetërore të përmendur në këtë artikull janë fiktive dhe rastësitë e mundshme me emrat e organizatave reale janë të rastësishme.
Pra, ne do të bëjmë një bot që do të na furnizojë me mendime të zgjuara. Pikërisht si në foto:
Mund ta provoni në veprim - këtu është emri: @SmartThoughtsBot. Vini re butonin "Shkathtësia e Alices"? Kjo sepse boti është një lloj "shoku" për të njëjtin emër Shkathtësia e Alice, d.m.th. kryen të njëjtat funksione si Shkathtësia e Alices dhe, ndoshta, se ata mund të bashkëjetojnë në mënyrë paqësore duke reklamuar njëri-tjetrin. Rreth mënyrës së krijimit Shkathtësi e të menduarit të zgjuar përshkruar në artikull
Krijimi i botit
Do të doja që ky tutorial të ishte i dobishëm për të gjithë, përfshirë. dhe fillestar "bot builders". Prandaj, në këtë seksion do të përshkruaj në detaje se si të krijojmë në përgjithësi Telegram'e bots. Për ata që nuk kanë nevojë për këtë informacion, vazhdoni në seksionet vijuese.
Hapni aplikacionin Telegaram, ne e quajmë babain e të gjithë robotëve (ata kanë gjithçka si njerëzit) - @BotFather - dhe për të filluar, ne do t'i japim atij komandën / ndihmë për të rifreskuar kujtesën tonë për atë që mund të bëjmë. Tani jemi të interesuar për ekipin / newbot.
Meqenëse roboti i përshkruar këtu është krijuar tashmë, për qëllime demonstrimi do të krijoj një bot tjetër për një kohë të shkurtër (pastaj do ta fshij). Unë do ta thërras atë DemoHabrBot. Emrat (Emri i përdoruesit) të gjithë bot-et e telegramit duhet të përfundojnë me një fjalë bot, për shembull: MyCoolBot ose my_cool_bot Kjo është për robotët. Por së pari, jepini një emër robotit (emër) është për njerëzit. Emri mund të jetë në çdo gjuhë, të përmbajë hapësira, nuk duhet të përfundojë me një fjalë bot, dhe as nuk duhet të jetë unik. Në këtë shembull, unë e quajta këtë bot Demo Habr.
Tani zgjidhni një emër për robotin (Emri i përdoruesit, ai për robotët). Le ta quajmë DemoHabrBot. Gjithçka që lidhet me emrin e robotit (emër) nuk ka lidhje fare me emrin e tij - Emri i përdoruesit (ose vlen, por pikërisht e kundërta). Pasi të kemi krijuar me sukses një emër unik boti, duhet të kopjojmë dhe ruajmë (në konfidencën më të rreptë!) shenjën e treguar në pamjen e ekranit me një shigjetë të kuqe. Me ndihmën e tij, ne më vonë do të instalojmë daljen Telegram'një uebhook për tonën Funksioni Yandex.
Dhe tani ne do t'i japim urdhrin babait të të gjithë robotëve: /mybotsdhe do të na tregojë një listë të të gjithë robotëve që kemi krijuar. Le ta lëmë të qetë botin e sapopjekur tani për tani Demo Habr (u krijua për të treguar se si të krijohen bot, por ne do ta përdorim sot për qëllime të tjera demonstrimi), dhe merrni parasysh robotin Mendime të zgjuara (@SmartThoughtsBot). Klikoni butonin me emrin e tij në listën e robotëve.
Këtu mund të konfigurojmë botin tonë. Duke shtypur një buton Edit ... ne do të kalojmë në modifikimin e një ose një tjetër opsioni. Për shembull, duke klikuar në butonin Redakto emrin ne mund të ndryshojmë emrin e botit, të themi në vend të Mendime të zgjuara, shkruaj ide të çmendura. Botpic - ky është avatari i robotit, duhet të jetë të paktën 150 x 150 px. Përshkrim është një përshkrim i shkurtër që përdoruesi e sheh kur bot lëshohet për herë të parë, si përgjigje për pyetjen: Çfarë mund të bëjë ky bot? Rreth Nesh - një përshkrim edhe më i shkurtër, i cili transmetohet me një lidhje në bot (https://t.me/SmartThoughtsBot
) ose kur shikoni informacion në lidhje me të.
Thjesht duhet të vendosim komandat. Për ta bërë këtë, shtypni butonin Redakto komandat. Për të standardizuar praktikat e përdoruesve Telegram rekomandon gjithmonë përdorimin e dy komandave: /fillo и / ndihmë, dhe nëse roboti ka nevojë për cilësime, një komandë shtesë /settings. Boti ynë është aq i thjeshtë sa një top, kështu që nuk ka nevojë për ndonjë cilësim ende. Shkruajmë dy komandat e para, të cilat më pas do t'i përpunojmë në kod. Tani, nëse përdoruesi fut një vijë të pjerrët (karakteri i pjerrët: /) në fushën e hyrjes, do të shfaqet një listë komandash për zgjedhjen e tyre të shpejtë. Gjithçka është si në foto: në të majtë - vendosim komanda përmes bot-babait; në të djathtë, këto komanda janë tashmë të disponueshme për përdoruesit në robotin tonë.
Funksioni Yandex
Tani që boti ynë është krijuar, le të shkojmë te Yandex.Cloudpër të krijuar një funksion që do të ekzekutojë kodin tonë bot. Nëse nuk keni punuar me Yandex.Cloud lexoni materialin
Pra, në tastierë Yandex.Retë në menynë e majtë të navigimit, zgjidhni artikullin Funksionet e reve, dhe më pas shtypni butonin Krijo një funksion. Ne i japim një emër, dhe për veten tonë - një përshkrim të shkurtër.
Pasi të keni shtypur butonin krijoj dhe pas disa sekondash, funksioni i ri do të shfaqet në listën e të gjitha funksioneve. Klikoni mbi emrin e saj - kjo do të na çojë në faqe Rishikimi funksionin tonë. Këtu ju duhet të aktivizoniOn) kaloni funksion publikpër ta vënë atë në dispozicion nga jashtë (për Yandex.Retë) të botës dhe vlerën e fushave Lidhja për të thirrur и Identifikuesi - Mbajeni në fshehtësi të thellë nga të gjithë përveç vetes dhe Telegramit, në mënyrë që mashtruesit e ndryshëm të mos e thërrasin funksionin tuaj.
Tani duke përdorur menunë e majtë shkoni te Redaktori funksione. Le të lëmë mënjanë për një moment tonën Mendime të zgjuara, dhe krijoni një funksion minimal shabllon për të kontrolluar performancën e botit tonë... Megjithatë, në këtë kontekst, ky funksion është boti ynë... Shkurtimisht, tani dhe pikërisht këtu do të bëjmë botin më të thjeshtë që do të “pasqyrojë” ( dmth dërgoni ) kërkesat e përdoruesve. Ky shabllon mund të përdoret gjithmonë kur krijohen bote të reja telegrami për t'u siguruar që komunikimi me Telegram'om punon mirë. Klikoni Krijo skedar, thirreni indeks.js, dhe në internet Redaktori i kodit ngjisni kodin e mëposhtëm në këtë skedar:
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
};
};
Në tastierën Yandex.Cloud, duhet të duket diçka si kjo:
Më poshtë, ne tregojmë pikë hyrëse - indeks.botKu indeks ky është emri i skedarit (indeks.js), dhe bot - emri i funksionit (module.eksportet.bot). Lërini të gjitha fushat e tjera "siç janë" dhe në këndin e sipërm të djathtë klikoni butonin Krijo Version. Pas disa sekondash, ky version i funksionit do të krijohet. Menjëherë pas testimit uebgrep, do të krijojmë një version të ri − Mendime të zgjuara.
Ruajtja e objekteve
Tani që kemi ngritur Funksioni Yandexle të shkojmë ndërsa jemi në tastierë Yandex.Retë, krijojnë një të ashtuquajtur. kovë (kovë, d.m.th. kovë në rusisht, në asnjë mënyrë një buqetë) për ruajtjen e skedarëve të imazheve që do të përdoren në robotin tonë Mendime të zgjuara. Zgjidhni nga menyja e majtë e navigimit Ruajtja e objekteve, Shtyp butonin Krijo kovë, jepini një emër, për shembull, img-kovëdhe, më e rëndësishmja, Lexoni qasjen në objekte bëje publike - përndryshe Telegram nuk do t'i shohë fotot tona. Të gjitha fushat e tjera janë lënë të pandryshuara. Ne shtypim butonin Krijo kovë.
Pas kësaj, një listë e të gjitha kovave mund të duket diçka si kjo (nëse kjo është kova juaj e vetme):
Tani unë propozoj të klikoni në emrin e kovës dhe të krijoni një dosje brenda saj për të organizuar ruajtjen e fotografive për aplikacione të ndryshme. Për shembull, për një bot telegram Mendime të zgjuara kam krijuar një dosje të quajtur tg-bot-mendime të zgjuara (Asgjë, unë do ta kuptoj këtë shifër). Krijo edhe një.
Tani mund të klikoni në emrin e dosjes, të futeni në të dhe të ngarkoni skedarë:
Dhe duke klikuar mbi emrin e skedarit - merrni atë URL për përdorim në botin tonë, dhe në përgjithësi - kudo (por, mos e publikoni këtë URL në mënyrë të panevojshme, pasi trafiku nga ruajtjen e objekteve i ngarkuar).
Këtu, në fakt, kjo është e gjitha ruajtjen e objekteve. Tani do të dini se çfarë të bëni kur të shihni kërkesën për të ngarkuar skedarë atje.
Uebhook
Tani do të instalojmë uebgrep - d.m.th. kur roboti merr një përditësim (për shembull, një mesazh nga përdoruesi), nga serveri Telegram në tonën Funksioni Yandex kërkesa do të dërgohetkërkojë) me të dhëna. Këtu është një varg që thjesht mund ta ngjitni në fushën e adresës së shfletuesit dhe më pas të rifreskoni faqen (kjo duhet të bëhet vetëm një herë): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Thjesht zëvendësoni {bot_token} në shenjën që morëm nga babai bot gjatë krijimit të botit tonë, dhe {webhook_url} - në URL tonë Funksionet Yandex. Prit një minutë! Por RossKomCensorship ndalon ofruesit në Federatën Ruse që të ofrojnë adresën https://api.telegram.org
. Po ashtu eshte. Por ju mund të mendoni për diçka. Në fund të fundit, ju mund, për shembull, të pyesni gjyshen tuaj për këtë në Ukrainë, Izrael ose Kanada - nuk ka "censurë ruse" atje, dhe vetëm Zoti e di se si njerëzit jetojnë pa të. Si rezultat, përgjigja e kërkesës gjatë instalimit të uebhook duhet të duket si kjo:
Duke testuar. Duhet të pasqyrohet.
Kjo eshte e vertetë. Urimet tona - tani Funksioni Yandex është bërë Telegram-bot!
Mendime të zgjuara
Dhe tani ne bëjmë Mendime të zgjuara. Kodi është i hapur dhe shtrihet
Klononi projektin dhe instaloni varësitë:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Bëni ndryshimet që ju nevojiten në skedar indeks.js (opsionale; nuk mund të ndryshoni asgjë). Krijo zip-arkiv, me dosje indeks.js dhe dosje nyjet_module brenda, për shembull, i quajtur i zgjuar.zip.
Tani shkoni në tastierë në tonë Funksionet Yandex, zgjidhni skedën Arkivi ZIP, Shtyp butonin Zgjidhni një skedardhe shkarkoni arkivin tonë i zgjuar.zip. Së fundi, në këndin e sipërm të djathtë, klikoni butonin Krijo Version.
Në pak sekonda, kur funksioni të përditësohet, ne do të testojmë përsëri botin tonë. Tani ai nuk "pasqyron", por jep mendime të zgjuara!
Kaq për sot. Artikuj të tjerë vijojnë. Nëse jeni të interesuar ta lexoni këtë, regjistrohuni në njoftimet e artikujve të rinj. Mund të abonoheni këtu ose Telegram-kanali
Referencat
Donacionet
Burimi: www.habr.com