Ghid: cum să faci un robot simplu Telegram în JS pentru un începător în programare

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:

Ghid: cum să faci un robot simplu Telegram în JS pentru un începător în programare

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 curs pe Codecademy și a fost foarte încântat. Primele 7 zile sunt gratuite. Proiecte reale. Vă recomand. Finalizarea a durat aproximativ 25 de ore. De fapt, nu toate au fost utile. Așa arată structura cursului și primul bloc în detaliu.

Ghid: cum să faci un robot simplu Telegram în JS pentru un începător în programare

2. Cum se înregistrează un bot?

Acest lucru m-a ajutat foarte mult la început acest articol de pe blogul unui anume Arhakov. Mestecă chiar începutul. Dar principalul lucru este că există instrucțiuni pentru înregistrarea unui bot. Nu o pot scrie mai bine și, deoarece aceasta este cea mai ușoară parte, voi scrie doar esenta. Trebuie să creați un bot și să obțineți API-ul acestuia. Acest lucru se face printr-un alt bot - @BotFather. Găsiți-l pe telegramă, scrieți-i, urmați calea simplă și obțineți (salvați!) o cheie API (acesta este un set de numere și litere). A venit la îndemână mai târziu.

Ghid: cum să faci un robot simplu Telegram în JS pentru un începător în programare

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 telegraf, care trebuia conectat cumva la ceva folosind npm sau yarn. Cam așa am înțeles atunci în ce constă implementarea unui bot. Râzi aici. nu voi fi jignit. Exemplele din partea de jos a paginii m-au ajutat cel mai mult în timpul creării ulterioare a botului:

Ghid: cum să faci un robot simplu Telegram în JS pentru un începător în programare

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 vscale.io Am cheltuit 100 de ruble și am cumpărat cel mai ieftin server Ubuntu (vezi poza).

Ghid: cum să faci un robot simplu Telegram în JS pentru un începător în programare

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 instrucție Acest lucru vă va permite să lucrați cu serverul direct prin consola computerului dvs.

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 Atom, dar, în realitate, puteți scrie doar într-un blocnotes standard. Principalul lucru este să salvați fișierul mai târziu în extensia dorită. Este ca și cum ai scrie text în Word și îl salvezi.

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 github și a făcut proiect nou, unde am încărcat fișierul. După aceea, trebuia să-mi dau seama cum să configurez încărcarea fișierelor din contul meu (deschis!) pe serverul din folderul bot (dacă îl părăsiți brusc, scrieți cd bot).

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 - iată articolul. Doar mergeți în folderul dvs. și introduceți comanda pentru a lansa botul

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()

Ghid: cum să faci un robot simplu Telegram în JS pentru un începător în programare

Dacă te uiți la codul de la github, atunci veți înțelege rapid că nu am mers prea departe de această funcționalitate. Ceea ce este utilizat în mod activ este funcția 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.

Ghid: cum să faci un robot simplu Telegram în JS pentru un începător în programare

Pentru a dezvolta botul în continuare, trebuie să conectați o tastatură, vedeți exemple, de exemplu, prin urmare

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

Adauga un comentariu