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:
Ü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
2. Kuidas robotit registreerida?
Aitas mind alguses palju
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
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
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
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
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
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 -
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()
Kui vaatate koodi aadressil 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.
Boti edasiseks arendamiseks peate ühendama klaviatuuri, vaadake näiteks näiteid
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