Udhëzues: si të krijoni një bot të thjeshtë për Telegram në JS për fillestarët në programim

Kam filluar të zhytet në botën e IT vetëm tre javë më parë. Me të vërtetë, tre javë më parë nuk dija as sintaksën e HTML, dhe njohja ime me gjuhët e programimit përfundonte me programin shkollor të Pascal 10 vjet më parë. Megjithatë, u vendosa të shkoj në një kamp IT, ku do të ishte e dobishme për fëmijë të kishin një bot. E mendoj se nuk është aq e komplikuar.

Kjo shënoi fillimin e një rrugëtimi të gjatë, ku unë:

  • ngrita një server në çdo cloud me Ubuntu,
  • u regjistrova në GitHub,
  • mësova sintaksën bazë të JavaScript,
  • lexova një ton artikujsh në anglisht dhe rusisht,
  • më në fund krijova një bot,
  • shkrova këtë artikull, përfundimisht.

Rezultati përfundimtar dukej kështu:

Udhëzues: si të krijoni një bot të thjeshtë për Telegram në JS për fillestarët në programim

Të them të drejtën, ky artikull është për fillestarët — për të kuptuar thjesht se si të bësh gjëra elementare nga një pikë fillestare.

Dhe gjithashtu — për programuesit e avancuar — thjesht për t'i bërë ata të qeshin pak.

1. Si të shkruash kod në JS?

Kuptova, se duhet të filloj me kuptimin e sintaksës së gjuhës. Zgjodha JavaScript, thjesht sepse hapi tjetër për mua ishte krijimi i një aplikacioni në ReactNative. Fillova me kursin në Codecademy dhe mbeta shumë i kënaqur. 7 ditët e para falas. Projekte reale. E rekomandoj. Pjesëmarrja e tij zuri rreth 25 orë. Në fakt, nuk më nevojiteshin pothuajse të gjitha. Kështu duket struktura e kursit dhe hollësisht blloku i parë.

Udhëzues: si të krijoni një bot të thjeshtë për Telegram në JS për fillestarët në programim

2. Si të regjistrohet një bot?

Fillimisht, më ndihmoi shumë kjo artikull nga blogu i një zotit Arçakovi. Ai e shpjegon fillimin. Por më e rëndësishmja, çfarë ka atje — është udhëzimi për regjistrimin e botit. Nuk do ta shkruhja më mirë, dhe duke qenë se kjo është pjesa më e lehtë, do ta shkruaj thjesht thelbin. Duhet të krijoni një bot dhe të merrni API-në e tij. Kjo bëhet përmes një boti tjetër — @BotFather. Gjeni atë në telegram, shkruani atij, ndiqni një rrugë të thjeshtë dhe merrni (ruani!) çelësin API (kjo është një grup numrash dhe shkronjash). Më kishte ndihmuar më vonë.

Udhëzues: si të krijoni një bot të thjeshtë për Telegram në JS për fillestarët në programim

3. Si duket kodi i botit?

Pas një studim të gjatë të artikujve, kuptova se ishte e nevojshme të përdorja ndonjë bibliotekë (kod të jashtëm në format moduli) për të mos u munduar me studimin e API-së së Telegramit dhe krijimin nga fillimi të pjesëve të mëdha të kodit. Gjeta një kornizë telegraf, e cila duhej të lidhej në një farë mënyre me diçka përmes npm ose yarn. Kështu e kuptoja atëherë se çfarë përfshin krijimi i një boti. Qeshni këtu. Nuk do të indinjohem. Më shumë se çdo gjë, gjatë krijimit të mëvonshëm të botit, më ndihmuan shembujt e listuar në fund të faqes:

Udhëzues: si të krijoni një bot të thjeshtë për Telegram në JS për fillestarët në programim

3. Si të krijoni një server cloud të vetin për 100 lekë

Pas kërkimeve të gjata, kuptova se komandën ‘npm’ nga figura e mësipërme i përket komandës së linjës. Komanda e linjës është kudo, por për ta ekzekutuar, duhej të instalonit NodePackageManager. Problemi ishte se programoja në PixelBook me ChromeOS. Do ta kaloj këtu një bllok të madh rreth asaj se si e njihja Linux-in — për shumicën, kjo është e panevojshme. Nëse keni Windows ose MacBook, tashmë keni një konsolë.

Nëse e shprehim me dy fjalë, instalova Linux përmes Crostini.

Megjithatë, gjatë procesit kuptova se për të bërë funksional bot-in në mënyrë të vazhdueshme (dhe jo vetëm kur kam kompjuterin e ndezur) më duhet një server në re. Zgjodha vscale.io Kuptova 100 rubla, bleva serverin më të lirë Ubuntu (shih imazhin).

Udhëzues: si të krijoni një bot të thjeshtë për Telegram në JS për fillestarët në programim

4. Si të përgatisim serverin për të filluar bot-in

Pas kësaj, kuptova se duheshin krijuar disa dosje në server, në të cilat do të vendosja skedarin me kodin. Për këtë, në konsolë (në mënyrë që ta nisni direkt në sit duke përdorur butonin "Hap konsolën") shkruajta

mkdir bot

bot — это стало название моей папки. После этого я установил npm и Node.js, что позволит запускать мне потом код из файликов с разрешением *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

E rekomandoj shumë që në këtë fazë të konfiguroni lidhjen me serverin përmes konsolës tuaj. Ja udhëzimi Kjo do të lejojë që të punoni me serverin direkt nga konsola e kompjuterit tuaj.

5. Si të shkruani kodin e bot-it të parë.

E tani për mua e thjeshtë. Çdo program është thjesht rreshta teksti. Mund të shkruhen kudo, të ruhen me zgjedhjen e duhur të përfundimit dhe mjafton. Ti je i shkëlqyer. Unë përdora Atom, por në të vërtetë, mund të shkruani thjesht në notepad standard. E rëndësishme është të ruani skedarin me përfundimin e duhur. Kjo është si të shkruani një tekst në Word dhe ta ruani.

Krijova një skedë të re, në të cilën vendosa kodin nga shembulli në faqen telegraf, dhe e ruajta në skedën index.js (nuk është e nevojshme ta quaj skedën kështu, por ashtu është zakon). E rëndësishme — në vend të BOT_TOKEN, vendosni çelësin tuaj API nga pika e dytë.

const Telegraf = require('telegraf')

const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Mirësevini!'))
bot.help((ctx) => ctx.reply('Më dërgoni një ngjitëse'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hej atje'))
bot.launch()

6. Si të ngarkohet kodi në server përmes github

Tani më duhej të ngarkoja të njëjtin kod në server dhe ta filloja atë. Kjo për mua ishte një sfidë. Në fund, pas shumë mundimesh, kuptova se do të ishte më e thjeshtë të krijoja një skedë në github, e cila lejonte përditësimin e kodit përmes komandës në konsolë. Regjistrova një llogari në github dhe krijova një projekt të ri, ku ngarkova skedën. Pas kësaj, më duhej të kuptoja se si të konfiguronte ngarkimin e skedave nga llogaria ime (të hapur!) në server në dosjen bot (nëse ndodhi që të dilnit prej saj — thjesht shkruhni cd bot).

7. Si të ngarkohet skedarët në server përmes github ç.2

Më duhej të instalonja në server programin, i cili do të ngarkohet skedarët me git. E instalova git në server, duke shkruar në konsolë

apt-get install git

Pas këtij, m'u desh të konfiguroj ngarkimin e skedarëve. Për këtë, shkrova në linjën e komandës

git clone git://github.com/b0tank/bot.git bot

В итоге все из проекта загрузилось на сервер. Ошибкой на данном этапе было, что я, по сути, сделал вторую папку внутри уже существующей папки bot. Адрес до файла выглядел как */bot/bot/index.js

Vendosa të injoroj këtë problem.

Dhe për të ngarkuar bibliotekën telegraf, të cilën e kërkojmë në rreshtin e parë të programit, shkruani në konsolë komandën.

npm install telegraf

8. Si ta nisim botin

Për këtë, duke qënë në dosjen me skedarin (për të kaluar nga një dosje në tjetrën përmes konsolës — ekzekutoni komandën e formatit cd bot Për t'u siguruar se jeni aty ku duhet, mund të shkruani një komandë që do të shfaqë në konsolë të gjitha skedarët dhe dosjet që ndodhen aty ls -a

Për të nisur, shkrova në konsolë

node index.js

Nëse nuk ka asnjë gabim — është gjithçka në rregull, boti punon. Kërkoni atë në Telegram. Nëse ka gabime — aplikoni njohuritë tuaja nga pika 1.

9. Si ta nisim botin në modalitetin në sfond

Mjafton shpejt të kuptoni se boti punon vetëm kur jeni vetë në konsolë. Për të zgjidhur këtë problem, përdora komandën

ekrani

Pas kësaj do të shfaqet një ekran me ndonjë tekst. Kjo do të thotë se gjithçka shkon mirë. Jeni në një server virtual në serverin cloud. Në mënyrë që të kuptoni më mirë si funksionon gjithçka — kjo është një artikull. Thjesht hyni në dosjen tuaj dhe shkruani komandën për të nisur botin

node index.js

10. Si funksionon boti dhe si ta zgjeroni funksionalitetin e tij

Çfarë mund të bëjë boti ynë nga shembulli? Ai mund të

bot.start((ctx) => ctx.reply('Mirëse vini!'))

të thotë «Mirëse vini!» në momentin e nisjes (provoni të ndryshoni tekstin)

bot.help((ctx) => ctx.reply('Më dërgoni një sticker'))

të dërgojë mesazhin «Më dërgoni një sticker» në përgjigje të komandës standarde /help

bot.on('sticker', (ctx) => ctx.reply(''))

të dërgojë miratimin në përgjigje të një sticker-i

bot.hears('hi', (ctx) => ctx.reply('Hey there'))

të përgjigjet «Hey there», nëse i shkruajnë ‘hi’
bot.launch()

Udhëzues: si të krijoni një bot të thjeshtë për Telegram në JS për fillestarët në programim

Nëse e shihni kodin në github, do ta kuptoni shpejt se nuk kam ikur shumë larg këtij funksionaliteti. Ajo që përdoret aktivisht është funksioni ctx.replyWithPhoto Ai lejon të dërgoni një foto ose gif të caktuar në përgjigje të një teksti të caktuar.

Një pjesë e rëndësishme e kodit është shkruar nga fëmijë 11-13 vjeç, të cilëve u dhashë akses në bot. Ata e futën rastin e tyre të përdorimit. Mendoj se është e lehtë të identifikosh se cila pjesë është bërë nga ta.

Për shembull, në përgjigje të mesazhit «dhejk», vjen një gif me një personazh të njohur nga animacioni Adventure Time.

Udhëzues: si të krijoni një bot të thjeshtë për Telegram në JS për fillestarët në programim

Për të zhvilluar më tej botin, për të lidhur tastierën, duhet të shikoni shembuj, për shembull, këtu

11. Si të përditësoni kodin dhe të rindizni botin

Mos harroni të përditësoni kodin jo vetëm në github, por edhe në server. E bëni këtë lehtë — ndalni botin (shtypni ctrl+c),

— hapni konsolën, duke u ndodhur në dosjen e synuar, git pull
— rinisni botin me komandën node index.js

END

Shumë gjëra të përshkruara në këtë dokument do të duken tepër të qarta për programuesit e avancuar. Megjithatë, kur përpiqesha të kalojë njëherazi në botën e botëve, më mungonte shumë një udhëzues i tillë. Një udhëzues që nuk injoron gjërat e dukshme dhe të thjeshta për çdo specialist IT.

Në të ardhmen planifikoj një postim mbi si të krijoni aplikacionin tuaj të parë në ReactNative në të njëjtin stil, abonohuni!

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster