Am început să mă scufund în lumea IT-ului cu doar trei săptămâni în urmă. Serios, acum trei săptămâni nici măcar nu înțelegeam sintaxa HTML, iar introducerea mea în limbaje de programare s-a încheiat cu un curriculum școlar pe Pascal de acum 10 ani. Totuși, am decis să merg într-o tabără de IT, unde ar fi bine ca copiii să facă un bot. Am decis că nu era atât de greu.
Aceasta a început o călătorie lungă în care am:
- a implementat un server cloud cu Ubuntu,
- înregistrat pe GitHub,
- a învățat sintaxa JavaScript de bază,
- citește o mulțime de articole în engleză și rusă,
- în sfârșit a făcut un bot,
- Am scris in sfarsit acest articol.
Rezultatul final a arătat cam așa:
Voi spune imediat că acesta este un articol pentru începători - doar pentru a înțelege cum să faci lucruri de bază de la zero.
Și, de asemenea, - pentru programatorii avansați - doar pentru a-i face să râdă puțin.
1. Cum se scrie cod în JS?
Am înțeles că merită măcar să înțelegem mai întâi sintaxa limbii. Alegerea a căzut pe JavaScript, pur și simplu pentru că următorul pas pentru mine a fost să creez o aplicație în ReactNative. am inceput cu
2. Cum se înregistrează un bot?
Acest lucru m-a ajutat foarte mult la început
3. Cum arată codul bot?
După ce am studiat articolele timp îndelungat, mi-am dat seama că merită să folosesc un fel de bibliotecă (cod terță parte în format de modul) pentru a nu fi nevoit să-ți faci griji studierea API-ului Telegram și crearea unor bucăți mari de cod de la zero. Am gasit cadrul
3. Cum să vă creați propriul server cloud pentru 100 de ruble
După multe căutări, mi-am dat seama că comanda „npm” din imaginea de mai sus se referă la linia de comandă. Linia de comandă este peste tot, dar pentru a o putea executa, trebuie să instalați NodePackageManager. Problema a fost că programam pe un PixelBook cu ChromeOS. Voi sări peste aici un bloc mare despre cum am învățat Linux - pentru majoritatea este gol și inutil. Dacă aveți Windows sau un MacBook, aveți deja o consolă.
Pe scurt, am instalat Linux prin Crostini.
Cu toate acestea, în acest proces, mi-am dat seama că pentru ca botul să funcționeze constant (și nu doar când computerul meu este pornit), am nevoie de un server cloud. Am ales
4. Cum să pregătiți un server pentru a rula un bot
După aceea, mi-am dat seama că trebuie să fac un fel de folder pe server în care să pun fișierul cu textul codului. Pentru a face acest lucru, în consolă (rulați direct pe site prin butonul „Deschideți consola”), am intrat
mkdir bot
bot - acesta a devenit numele folderului meu. După aceea, am instalat npm și Node.js, ceea ce îmi va permite să rulez apoi cod din fișiere cu rezoluție *.js
sudo apt update
sudo apt install nodejs
sudo apt install npm
Recomand cu căldură să configurați o conexiune la server prin consola dumneavoastră în această etapă. Aici
5. Cum se scrie codul pentru primul tău bot.
Dar acum este doar o descoperire pentru mine. Orice program este doar linii de text. Ele pot fi inserate oriunde, salvate cu extensia dorită și atât. Sunteţi frumoasă. obisnuiam
Am facut un nou fisier, in care am introdus codul din exemplul de pe pagina telegraf si l-am salvat in fisierul index.js (in general nu este necesar sa denumesc fisierul asa, dar acest lucru este obisnuit). Important - în loc de BOT_TOKEN, introduceți cheia API din al doilea paragraf.
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. Cum să încărcați codul pe server prin github
Acum trebuia să încarc cumva acest cod pe server și să-l rulez. Aceasta a devenit o provocare pentru mine. Drept urmare, după multe încercări, mi-am dat seama că ar fi mai ușor să creezi un fișier pe github care să îți permită să actualizezi codul folosind o comandă din consolă. Am înregistrat un cont pe
7. Cum să încărcați fișiere pe server prin github partea 2
Aveam nevoie să instalez un program pe server care să descarce fișiere de pe git. Am instalat git pe server tastând în consolă
apt-get install git
După aceea, trebuia să configurez încărcarea fișierului. Pentru a face acest lucru, am tastat în linia de comandă
git clone git://github.com/b0tank/bot.git bot
Ca rezultat, totul din proiect a fost încărcat pe server. Greșeala în această etapă a fost că, în esență, am făcut un al doilea folder în folderul bot deja existent. Adresa fișierului arăta ca */bot/bot/index.js
Am decis să ignor această problemă.
Și pentru a încărca biblioteca telegraf, pe care o solicităm în prima linie de cod, tastați comanda în consolă.
npm install telegraf
8. Cum se lansează un bot
Pentru a face acest lucru, în timp ce vă aflați în folderul cu fișierul (pentru a vă muta dintr-un folder în dosar prin consolă, executați comanda format cd bot
Pentru a vă asigura că sunteți acolo unde trebuie să fiți, puteți introduce o comandă care va afișa în consolă toate fișierele și folderele care se află acolo ls -a
Pentru a începe, am intrat în consolă
node index.js
Dacă nu există nicio eroare, totul este în regulă, botul funcționează. Caută-l pe telegramă. Dacă există o eroare, aplicați cunoștințele de la punctul 1.
9. Cum să rulezi un bot în fundal
Destul de repede îți vei da seama că botul funcționează doar atunci când tu însuți stai în consolă. Pentru a rezolva această problemă am folosit comanda
screen
După aceasta, va apărea un ecran cu ceva text. Asta înseamnă că totul este bine. Sunteți pe un server virtual pe un server cloud. Pentru a înțelege mai bine cum funcționează totul -
node index.js
10. Cum funcționează botul și cum să-și extindă funcționalitatea
Ce poate face botul nostru exemplu? El poate
bot.start((ctx) => ctx.reply('Welcome!'))
spune "Bine ai venit!" la început (încercați să schimbați textul)
bot.help((ctx) => ctx.reply('Send me a sticker'))
ca răspuns la comanda standard /help, trimiteți mesajul „Trimite-mi un autocolant”
bot.on('sticker', (ctx) => ctx.reply(''))
trimite aprobarea ca răspuns la un autocolant
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
răspunde „Hei acolo” dacă îi scriu „bună”.
bot.launch()
Dacă te uiți la codul de la ctx.replyWithPhoto
Vă permite să trimiteți o fotografie sau un GIF specificat ca răspuns la un anumit text.
O parte semnificativă a codului a fost scrisă de copii de 11-13 ani, cărora le-am dat acces la bot. Au intrat în cazul lor de utilizare. Cred că este ușor de spus care parte a fost făcută de ei.
De exemplu, mesajul „Jake” va primi un GIF cu un personaj celebru din desenul animat Adventure Time.
Pentru a dezvolta botul în continuare, trebuie să conectați o tastatură, vedeți exemple, de exemplu,
11. Cum să actualizați codul și să reporniți botul
Nu uitați că trebuie să actualizați codul nu numai pe github, ci și pe server. Acest lucru este ușor de făcut - opriți botul (apăsați ctrl+c),
- intrați în consolă în folderul țintă, git pull
— lansăm din nou botul cu comanda node index.js
Sfârşit
Multe dintre lucrurile descrise în acest fișier vor fi foarte evidente pentru programatorii avansați. Cu toate acestea, când eu însumi am încercat să trec peste prăpastie în lumea roboților dintr-o singură lovitură, mi-a lipsit foarte mult un astfel de ghid. Un ghid din care nu ratează lucruri evidente și simple pentru orice specialist IT.
Pe viitor, plănuiesc o postare despre cum să faci prima ta aplicație pe ReactNative în același stil, abonează-te!
Sursa: www.habr.com