Juhend: kuidas teha JS-is Telegrami jaoks lihtne robot programmeerimise algajale

IT-maailma hakkasin sukelduma alles kolm nädalat tagasi. Tõsiselt, kolm nädalat tagasi ei saanud ma isegi HTML-i süntaksist aru ja programmeerimiskeeltega tutvumine lõppes 10-aastase Pascali ainekavaga. Otsustasin aga minna IT-laagrisse, mille lastele oleks tore bot teha. Arvasin, et see polegi nii raske.

Sellest sai alguse pikk teekond, mille käigus ma:

  • juurutas Ubuntuga pilveserveri,
  • registreeritud GitHubis,
  • õppinud põhilist JavaScripti süntaksit,
  • lugeda palju artikleid inglise ja vene keeles,
  • lõpuks tegin roboti
  • lõpuks kirjutas selle postituse.

Lõpptulemus nägi välja selline:

Juhend: kuidas teha JS-is Telegrami jaoks lihtne robot programmeerimise algajale

Ütlen kohe, et see on artikkel algajatele - lihtsalt selleks, et mõista, kuidas algusest peale elementaarseid asju teha.

Ja ka – edasijõudnud programmeerijatele – lihtsalt selleks, et neid natukenegi naerma ajada.

1. Kuidas kirjutada koodi JS-is?

Sain aru, et enne tasub vähemalt keele süntaksist aru saada. Valik langes JavaScriptile lihtsalt seetõttu, et minu jaoks oli järgmine samm rakenduse loomine ReactNative'is. Alustasin sellega muidugi Codecademy's ja oli väga entusiastlik. Esimesed 7 päeva on tasuta. Reaalsed projektid. Ma soovitan. Läbisõit kestis umbes 25 tundi. Tegelikult polnud sellest kõigest kasu. Selline näeb välja kursuse ülesehitus ja esimene plokk täpsemalt.

Juhend: kuidas teha JS-is Telegrami jaoks lihtne robot programmeerimise algajale

2. Kuidas robotit registreerida?

Aitas mind alguses palju see artikkel teatud Archakovi blogist. Ta närib päris algusest peale. Kuid peamine, mis seal on, on juhised roboti registreerimiseks. Ma ei kirjuta paremini ja kuna see on kõige lihtsam osa, kirjutan lihtsalt sisu. Peate looma roboti ja hankima selle API. Seda tehakse teise roboti kaudu - @BotFather. Leidke ta telegrammist, kirjutage talle, järgige lihtsat teed ja hankige (salvestage!) API-võti (see on numbrite ja tähtede komplekt). See tuli mulle hiljem kasuks.

Juhend: kuidas teha JS-is Telegrami jaoks lihtne robot programmeerimise algajale

3. Kuidas roboti kood välja näeb?

Pärast pikka artiklite uurimist mõistsin, et tasub kasutada mingit teeki (mooduli vormingus kolmanda osapoole kood), et mitte kannatada telegrammi API uurimise ja suurte koodijuppide loomise pärast nullist. Leidsin raamistiku telegraaf, mis tuli kuidagi npm või lõnga abil millegagi ühendada. Nii sain siis aru, millest roboti juurutamine koosneb. Naera siin. ma ei solvu. Järgnenud roboti loomisel aitasid mind enim lehe allservas olevad näited:

Juhend: kuidas teha JS-is Telegrami jaoks lihtne robot programmeerimise algajale

3. Kuidas luua oma pilveserver 100 rubla eest

Pärast pikka otsimist sain aru, et ülaloleval pildil olev käsk 'npm' viitab käsureale. Käsurida on kõikjal, kuid selle käivitamiseks peate installima NodePackageManageri. Probleem oli selles, et programmeerisin ChromeOS-iga PixelBookis. Jätan siinkohal vahele suure bloki sellest, kuidas ma Linuxi tundma õppisin – enamiku jaoks on see tühi ja tarbetu. Kui teil on Windows või MacBook, on teil konsool juba olemas.

Lühidalt öeldes installisin Linuxi Crostini kaudu.

Selle käigus sain aga aru, et selleks, et robot töötaks kogu aeg (ja mitte ainult siis, kui arvuti on sisse lülitatud), on mul vaja pilveserverit. ma valisin vscale.io Viskasin 100 rubla, ostsin kõige odavama Ubuntu serveri (vt pilti).

Juhend: kuidas teha JS-is Telegrami jaoks lihtne robot programmeerimise algajale

4. Kuidas valmistada server ette roboti käivitamiseks

Peale seda sain aru, et pean tegema serverisse mingi kausta, kuhu panen faili koos koodi tekstiga. Selleks sõitsin konsoolis (käivitage otse saidil nupu "Ava konsool" kaudu)

mkdir bot

bot – sellest sai minu kausta nimi. Pärast seda installisin npm ja Node.js, mis võimaldab hiljem *.js-failidest koodi käivitada

sudo apt update
sudo apt install nodejs
sudo apt install npm

Soovitan selles etapis luua ühendus serveriga konsooli kaudu. Siin juhendamine See võimaldab teil töötada serveriga otse arvuti konsooli kaudu.

5. Kuidas esimest robotit kodeerida.

Nüüd on see minu jaoks lihtsalt ilmutus. Iga programm on vaid tekstiread. Saate nendega kõikjale sõita, salvestada soovitud laiendiga ja kõik. Sa oled ilus. ma kasutasin aatom, kuid tegelikult saate lihtsalt kirjutada tavalisesse märkmikusse. Peaasi on faili hiljem soovitud laiendisse salvestada. See on nagu Wordi teksti kirjutamine ja selle salvestamine.

Tegin uue faili, millesse sisestasin telegrafi lehel oleva näite koodi ja salvestasin selle index.js faili (pole üldse vaja faili niimoodi nimetada, aga see on aktsepteeritud). Tähtis – sisestage BOT_TOKEN asemel API võti teisest lõigust.

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. Kuidas githubi kaudu kood serverisse lükata

Nüüd pidin selle koodi kuidagi serverisse üles laadima ja käivitama. Minu jaoks sai see väljakutseks. Lõpuks, pärast paljusid katsumusi, mõistsin, et lihtsam oleks luua githubis fail, mis võimaldab koodi värskendada konsoolis oleva käsu abil. Registreerisin konto github ja tegigi uus projektkuhu ma faili üles laadisin. Pärast seda oli mul vaja välja mõelda, kuidas seadistada failide üleslaadimine oma (avatud!) kontolt roboti kaustas olevasse serverisse (kui järsku lahkusite, kirjutage lihtsalt cd bot).

7. Kuidas githubi kaudu 2. osa faile serverisse üles laadida

Mul oli vaja serverisse panna programm, mis laadiks failid gitist alla. Installisin giti serverisse tippides

apt-get install git

Pärast seda pidin seadistama failide üleslaadimise. Selleks sõitsin käsureale

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

Selle tulemusena laaditi kõik projektist serverisse üles. Siinkohal oli viga selles, et sisuliselt tegin juba olemasolevasse robotkausta sisse teise kausta. Faili aadress nägi välja kujul */bot/bot/index.js

Otsustasin seda probleemi ignoreerida.

Ja telegrafi teegi laadimiseks, mida taotleme esimesel koodireal, tippige käsk konsooli.

npm install telegraf

8. Kuidas robotit käivitada

Selleks failiga kaustas viibides (konsooli kaudu kaustast kausta liikumiseks käivitage käsk vorming cd bot Veendumaks, et olete seal, kus vajate, võite sisestada käsu, mis kuvab konsoolis kõik seal olevad failid ja kaustad ls -a

Alustuseks sisenesin konsooli

node index.js

Kui viga pole, on kõik korras, bot töötab. Otsige teda telegrammist. Kui on viga, rakendage oma teadmisi punktist 1.

9. Kuidas robotit taustal käivitada

Saate kiiresti aru, et bot töötab ainult siis, kui istute ise konsoolis. Selle probleemi lahendamiseks kasutasin käsku

screen

Pärast seda ilmub mõne tekstiga ekraan. See tähendab, et kõik on korras. Olete pilveserveri virtuaalserveris. Et paremini mõista, kuidas see kõik töötab - siin on artikkel. Lihtsalt minge oma kausta ja tippige roboti käivitamiseks käsk

node index.js

10. Kuidas bot töötab ja kuidas selle funktsionaalsust laiendada

Mida saab meie näites toodud robot teha? Ta suudab

bot.start((ctx) => ctx.reply('Welcome!'))

ütle "Tere tulemast!" käivitamise hetkel (proovige teksti muuta)

bot.help((ctx) => ctx.reply('Send me a sticker'))

vastuseks standardsele /help käsule saada sõnum "Saada mulle kleebis"

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

saatke vastuseks kleebise heakskiit

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

vasta "tere", kui nad kirjutavad "tere"
bot.launch()

Juhend: kuidas teha JS-is Telegrami jaoks lihtne robot programmeerimise algajale

Kui vaatate koodi aadressil github, siis saad kiiresti aru, et ma pole sellest funktsionaalsusest kuigi kaugele jõudnud. Aktiivselt kasutatakse funktsiooni ctx.replyWithPhoto See võimaldab teil saata teatud foto või gifi vastuseks teatud tekstile.

Märkimisväärse osa koodist kirjutasid 11-13-aastased lapsed, kellele andsin juurdepääsu robotile. Nad sisestasid oma kasutajajuhtumid. Ma arvan, et on lihtne aru saada, millise osa nad tegid.

Näiteks tuleb sõnumile “jake” mõne kuulsa tegelasega Adventure Time multikast GIF.

Juhend: kuidas teha JS-is Telegrami jaoks lihtne robot programmeerimise algajale

Boti edasiseks arendamiseks peate ühendama klaviatuuri, vaadake näiteks näiteid siit

11. Kuidas värskendada koodi ja taaskäivitada robot

Ärge unustage, et peate koodi värskendama mitte ainult githubis, vaid ka serveris. Seda on lihtne teha – peatage bot (vajutage ctrl + c),

- sisenege konsooli, olles sihtkaustas, git pull
- taaskäivitage robot käsuga node index.js

END

Paljud selles failis kirjeldatud asjad on kogenud programmeerijatele ülimalt ilmsed. Kui aga ise üritasin ühe hoobiga üle kuristiku botimaailma hüpata, tundsin sellisest juhendist väga puudust. Juhend, mis ei jäta ilmselgeid ja lihtsaid asju märkamata ühelegi IT-spetsialistile.

Tulevikus on mul plaanis postitus, kuidas teha oma esimene rakendus ReactNative'is samas stiilis, tellige!

Allikas: www.habr.com

Lisa kommentaar