Fillova të zhytem në botën e IT-së vetëm tre javë më parë. Seriozisht, tre javë më parë nuk e kuptoja as sintaksën HTML dhe njohja ime në gjuhët e programimit përfundoi me një kurrikulë shkollore mbi Pascal nga 10 vjet më parë. Megjithatë, vendosa të shkoj në një kamp IT, ku do të ishte mirë që fëmijët të bënin një bot. Vendosa se nuk ishte aq e vështirë.
Ky filloi një udhëtim të gjatë në të cilin unë:
- vendosi një server cloud me Ubuntu,
- regjistruar në GitHub,
- mësuar sintaksën bazë JavaScript,
- lexoni një ton artikujsh në anglisht dhe rusisht,
- më në fund bëri një bot,
- Më në fund shkrova këtë artikull.
Rezultati përfundimtar dukej diçka si ky:
Unë do të them menjëherë se ky është një artikull për fillestarët - vetëm për të kuptuar se si të bëni gjërat themelore nga e para.
Dhe gjithashtu - për programuesit e avancuar - vetëm për t'i bërë ata të qeshin pak.
1. Si të shkruhet kodi në JS?
Kuptova se ia vlente të paktën të kuptoja sintaksën e gjuhës. Zgjedhja ra në JavaScript, thjesht sepse hapi tjetër për mua ishte krijimi i një aplikacioni në ReactNative. Fillova me
2. Si të regjistrohet një bot?
Kjo më ndihmoi shumë në fillim
3. Si duket kodi i botit?
Pasi i studiova artikujt për një kohë të gjatë, kuptova se ia vlente të përdorja një lloj biblioteke (kodi i palës së tretë në formatin e modulit) në mënyrë që të mos shqetësohesha për studimin e API-së së Telegramit dhe krijimin e pjesëve të mëdha të kodit nga e para. Kam gjetur kornizën
3. Si të krijoni serverin tuaj cloud për 100 rubla
Pas shumë kërkimesh, kuptova se komanda 'npm' në foton e mësipërme i referohet linjës së komandës. Linja e komandës është kudo, por për të qenë në gjendje ta ekzekutoni atë, duhet të instaloni NodePackageManager. Problemi ishte se po programoja në një PixelBook me ChromeOS. Këtu do të kaloj një bllok të madh rreth mënyrës se si kam mësuar për Linux - për shumicën është bosh dhe i panevojshëm. Nëse keni Windows ose MacBook, tashmë keni një tastierë.
Me pak fjalë, instalova Linux nëpërmjet Crostini.
Megjithatë, gjatë procesit, kuptova se që roboti të funksionojë vazhdimisht (dhe jo vetëm kur kompjuteri im është i ndezur), më duhet një server cloud. une zgjodha
4. Si të përgatisni një server për të ekzekutuar një bot
Pas kësaj, kuptova se duhej të bëja një lloj dosjeje në server në të cilin do të vendosja skedarin me tekstin e kodit. Për ta bërë këtë, në tastierë (drejtuar drejtpërdrejt në faqen e internetit përmes butonit "Open console"), hyra
mkdir bot
bot - ky u bë emri i dosjes sime. Pas kësaj, instalova npm dhe Node.js, të cilat do të më lejojnë të ekzekutoj kodin nga skedarët me rezolucion *.js
sudo apt update
sudo apt install nodejs
sudo apt install npm
Unë rekomandoj shumë të konfiguroni një lidhje me serverin përmes tastierës suaj në këtë fazë. Këtu
5. Si të shkruani kodin për botin tuaj të parë.
Por tani është vetëm një zbulim për mua. Çdo program është vetëm linja teksti. Ato mund të futen kudo, të ruhen me shtrirjen e dëshiruar, dhe kjo është ajo. Ti je e bukur. une e perdora
Bëra një skedar të ri, në të cilin futa kodin nga shembulli në faqen e telegrafit dhe e ruajta në skedarin index.js (në përgjithësi nuk është e nevojshme të emërtohet skedari në këtë mënyrë, por kjo është zakon). E rëndësishme - në vend të BOT_TOKEN, futni çelësin tuaj API nga paragrafi i dytë.
const Telegraf = require('telegraf')
const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Welcome!'))
bot.help((ctx) => ctx.reply('Send me a sticker'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
bot.launch()
6. Si të ngarkoni kodin në server nëpërmjet github
Tani më duhej ta ngarkoja disi këtë kod në server dhe ta ekzekutoja. Kjo u bë një sfidë për mua. Si rezultat, pas shumë sprovash, kuptova se do të ishte më e lehtë të krijoni një skedar në github që ju lejon të përditësoni kodin duke përdorur një komandë në tastierë. Kam regjistruar një llogari në
7. Si të ngarkoni skedarë në server përmes github pjesës 2
Më duhej të instaloja një program në server që do të shkarkonte skedarë nga git. Unë instalova git në server duke shtypur në tastierë
apt-get install git
Pas kësaj më duhej të konfiguroja ngarkimin e skedarit. Për ta bërë këtë, unë shtypa në vijën e komandës
git clone git://github.com/b0tank/bot.git bot
Si rezultat, gjithçka nga projekti u ngarkua në server. Gabimi në këtë fazë ishte se në thelb bëra një dosje të dytë brenda dosjes tashmë ekzistuese të bot-it. Adresa e skedarit dukej si */bot/bot/index.js
Vendosa ta injoroj këtë problem.
Dhe për të ngarkuar bibliotekën e telegrafit, të cilën e kërkojmë në rreshtin e parë të kodit, shtypni komandën në tastierë.
npm install telegraf
8. Si të lëshoni një bot
Për ta bërë këtë, ndërsa jeni në dosjen me skedarin (për të lëvizur nga dosja në dosje përmes tastierës, ekzekutoni komandën e formatit cd bot
Për t'u siguruar që jeni aty ku duhet të jeni, mund të futni një komandë që do të shfaqë në tastierë të gjithë skedarët dhe dosjet që janë aty. ls -a
Për të filluar, unë hyra në tastierë
node index.js
Nëse nuk ka gabim, gjithçka është në rregull, roboti po funksionon. Kërkojeni atë në telegram. Nëse ka një gabim, zbatoni njohuritë tuaja nga pika 1.
9. Si të ekzekutoni një bot në sfond
Shumë shpejt do të kuptoni se roboti funksionon vetëm kur ju vetë jeni ulur në tastierë. Për të zgjidhur këtë problem kam përdorur komandën
screen
Pas kësaj, do të shfaqet një ekran me pak tekst. Kjo do të thotë se gjithçka është në rregull. Ju jeni në një server virtual në një server cloud. Për të kuptuar më mirë se si funksionon gjithçka -
node index.js
10. Si funksionon roboti dhe si të zgjerohet funksionaliteti i tij
Çfarë mund të bëjë roboti ynë i shembullit? Ai mundet
bot.start((ctx) => ctx.reply('Welcome!'))
thuaj "Mirë se erdhe!" në momentin e fillimit (provoni të ndryshoni tekstin)
bot.help((ctx) => ctx.reply('Send me a sticker'))
në përgjigje të komandës standarde / ndihmë, dërgoni mesazhin "Më dërgoni një afishe"
bot.on('sticker', (ctx) => ctx.reply(''))
dërgoni miratimin në përgjigje të një ngjitëseje
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
përgjigjuni "Hej atje" nëse i shkruajnë "përshëndetje".
bot.launch()
Nëse shikoni kodin në ctx.replyWithPhoto
Kjo ju lejon të dërgoni një foto ose gif të specifikuar në përgjigje të një teksti specifik.
Një pjesë e konsiderueshme e kodit është shkruar nga fëmijë 11-13 vjeç, të cilëve u kam dhënë akses në bot. Ata hynë në rastin e tyre të përdoruesit. Mendoj se është e lehtë të dallosh se cila pjesë është bërë prej tyre.
Për shembull, mesazhi "Jake" do të marrë një GIF me një personazh të famshëm nga filmi vizatimor Adventure Time.
Për të zhvilluar më tej robotin, duhet të lidhni një tastierë, shikoni shembuj, për shembull,
11. Si të përditësoni kodin dhe rinisni botin
Mos harroni se ju duhet të përditësoni kodin jo vetëm në github, por edhe në server. Kjo është e lehtë për t'u bërë - ndaloni robotin (shtypni ctrl+c),
- hyni në tastierë ndërsa jeni në dosjen e synuar, git pull
— e nisim përsëri botin me komandën node index.js
END
Shumë nga gjërat e përshkruara në këtë skedar do të jenë shumë të dukshme për programuesit e avancuar. Sidoqoftë, kur unë vetë u përpoqa të hidhesha mbi humnerën në botën e robotëve me një goditje, më humbi vërtet një udhëzues i tillë. Një udhëzues që nuk i mungojnë gjërat që janë të dukshme dhe të thjeshta për çdo specialist IT.
Në të ardhmen, po planifikoj një postim se si të bëni aplikacionin tuaj të parë në ReactNative në të njëjtin stil, abonohuni!
Burimi: www.habr.com