Es sāku gremdēties IT pasaulē tikai pirms trim nedēļām. Nopietni, pirms trim nedēļām es pat nesapratu HTML sintaksi, un mans ievads programmēšanas valodās beidzās ar skolas mācību programmu par Pascal no pirms 10 gadiem. Tomēr nolēmu doties uz IT nometni, kur bērniem būtu jauki uztaisīt botu. Es nolēmu, ka tas nav tik grūti.
Ar to sākās garš ceļojums, kurā es:
- izvietoja mākoņa serveri ar Ubuntu,
- reģistrēts GitHub,
- iemācījušies pamata JavaScript sintaksi,
- lasīt daudz rakstu angļu un krievu valodā,
- beidzot izveidoja robotu,
- Es beidzot uzrakstīju šo rakstu.
Gala rezultāts izskatījās apmēram šādi:
Es uzreiz teikšu, ka šis ir raksts iesācējiem - tikai tāpēc, lai saprastu, kā no nulles veikt pamata lietas.
Un arī - progresīviem programmētājiem - lai tikai nedaudz pasmieties.
1. Kā uzrakstīt kodu JS?
Sapratu, ka ir vērts vispirms saprast valodas sintaksi. Izvēle krita uz JavaScript, jo nākamais solis man bija lietojumprogrammas izveide ReactNative. Es sāku ar
2. Kā reģistrēt botu?
Tas man ļoti palīdzēja sākumā
3. Kā izskatās robota kods?
Ilgi pētot rakstus, sapratu, ka ir vērts izmantot kaut kādu bibliotēku (trešās puses kodu moduļa formātā), lai nebūtu jāuztraucas par Telegram API izpēti un lielu koda gabalu izveidi no nulles. Es atradu ietvaru
3. Kā izveidot savu mākoņserveri par 100 rubļiem
Pēc ilgas meklēšanas es sapratu, ka komanda 'npm' attēlā iepriekš attiecas uz komandrindu. Komandrinda ir visur, taču, lai to varētu izpildīt, ir jāinstalē NodePackageManager. Problēma bija tāda, ka es programmēju PixelBook datorā ar ChromeOS. Šeit es izlaidīšu lielu bloku par to, kā es apguvu Linux - lielākajai daļai tas ir tukšs un nevajadzīgs. Ja jums ir Windows vai MacBook, jums jau ir konsole.
Īsāk sakot, es instalēju Linux, izmantojot Crostini.
Tomēr šajā procesā es sapratu, ka, lai robots darbotos pastāvīgi (un ne tikai tad, kad mans dators ir ieslēgts), man ir nepieciešams mākoņserveris. ES izvēlos
4. Kā sagatavot serveri robota palaišanai
Pēc tam sapratu, ka vajag uztaisīt serverī kaut kādu mapi, kurā ielikšu failu ar koda tekstu. Lai to izdarītu, konsolē (palaist tieši vietnē, izmantojot pogu “Atvērt konsoli”) es ievadīju
mkdir bot
bot - tas kļuva par manas mapes nosaukumu. Pēc tam es instalēju npm un Node.js, kas ļaus pēc tam palaist kodu no failiem ar *.js izšķirtspēju
sudo apt update
sudo apt install nodejs
sudo apt install npm
Es ļoti iesaku šajā posmā izveidot savienojumu ar serveri, izmantojot konsoli. Šeit
5. Kā uzrakstīt kodu pirmajam robotam.
Bet tagad tas man ir tikai atklājums. Jebkura programma ir tikai teksta rindiņas. Tos var ievietot jebkur, saglabāt ar vēlamo paplašinājumu, un viss. Tu esi skaista. ES izmantoju
Uztaisīju jaunu failu, kurā ievietoju kodu no piemēra telegraf lapā un saglabāju index.js failā (vispār tā failu nosaukt nevajag, bet tā ir pieņemts). Svarīgi — BOT_TOKEN vietā ievietojiet API atslēgu no otrās rindkopas.
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. Kā augšupielādēt kodu serverī caur github
Tagad man vajadzēja kaut kā augšupielādēt šo kodu serverī un palaist to. Tas man kļuva par izaicinājumu. Rezultātā pēc daudziem pārbaudījumiem es sapratu, ka github būtu vieglāk izveidot failu, kas ļauj atjaunināt kodu, izmantojot komandu konsolē. Es reģistrēju kontu vietnē
7. Kā augšupielādēt failus serverī, izmantojot github 2. daļu
Man vajadzēja uz servera instalēt programmu, kas lejupielādētu failus no git. Es instalēju git serverī, ierakstot konsolē
apt-get install git
Pēc tam man vajadzēja konfigurēt failu augšupielādi. Lai to izdarītu, es ierakstīju komandrindā
git clone git://github.com/b0tank/bot.git bot
Rezultātā viss no projekta tika augšupielādēts serverī. Šajā posmā kļūda bija tāda, ka es būtībā izveidoju otru mapi jau esošajā robotu mapē. Faila adrese izskatījās šādi: */bot/bot/index.js
Es nolēmu ignorēt šo problēmu.
Un, lai ielādētu telegraf bibliotēku, ko mēs pieprasām pirmajā koda rindā, ierakstiet komandu konsolē.
npm install telegraf
8. Kā palaist robotu
Lai to izdarītu, atrodoties mapē ar failu (lai pārvietotos no mapes uz mapi, izmantojot konsoli, palaidiet formatēšanas komandu cd bot
Lai pārliecinātos, ka atrodaties tur, kur jums jāatrodas, varat ievadīt komandu, kas konsolē parādīs visus tur esošos failus un mapes ls -a
Lai sāktu, es iegāju konsolē
node index.js
Ja kļūdu nav, viss ir kārtībā, robots darbojas. Meklējiet viņu telegrammā. Ja ir kļūda, izmantojiet savas zināšanas no 1. punkta.
9. Kā darbināt botu fonā
Diezgan ātri jūs sapratīsit, ka bots darbojas tikai tad, kad jūs pats sēžat konsolē. Lai atrisinātu šo problēmu, es izmantoju komandu
screen
Pēc tam parādīsies ekrāns ar tekstu. Tas nozīmē, ka viss ir kārtībā. Jūs atrodaties virtuālajā serverī uz mākoņa servera. Lai labāk saprastu, kā tas viss darbojas -
node index.js
10. Kā darbojas bots un kā paplašināt tā funkcionalitāti
Ko var darīt mūsu parauga robots? Viņš var
bot.start((ctx) => ctx.reply('Welcome!'))
saki "Laipni lūdzam!" sākumā (mēģiniet mainīt tekstu)
bot.help((ctx) => ctx.reply('Send me a sticker'))
atbildot uz standarta komandu /help, nosūtiet ziņojumu “Send me a sticker”
bot.on('sticker', (ctx) => ctx.reply(''))
nosūtīt apstiprinājumu, atbildot uz uzlīmi
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
atbildiet "Sveiki", ja viņi viņam uzraksta "čau".
bot.launch()
Ja paskatās uz kodu vietnē ctx.replyWithPhoto
Tas ļauj nosūtīt noteiktu fotoattēlu vai gif, atbildot uz konkrētu tekstu.
Ievērojamu koda daļu uzrakstīja bērni vecumā no 11 līdz 13 gadiem, kuriem es devu pieeju botam. Viņi ievadīja savu lietotāja lietu. Es domāju, ka ir viegli pateikt, kuru daļu viņi ir izgatavojuši.
Piemēram, ziņojums “Džeiks” saņems GIF attēlu ar slavenu varoni no multfilmas Piedzīvojumu laiks.
Lai tālāk attīstītu robotprogrammatūru, jums ir jāpievieno tastatūra, skatiet piemērus, piemēram,
11. Kā atjaunināt kodu un restartēt robotprogrammu
Neaizmirstiet, ka jums ir jāatjaunina kods ne tikai github, bet arī serverī. Tas ir viegli izdarāms - apturiet robotu (nospiediet ctrl+c),
- ievadiet konsolē, atrodoties mērķa mapē, git pull
— mēs atkal palaižam botu ar komandu node index.js
END
Daudzas no šajā failā aprakstītajām lietām būs ļoti acīmredzamas pieredzējušiem programmētājiem. Taču, kad es pats mēģināju vienā rāvienā pārlēkt pāri bezdibenim uz botu pasauli, man ļoti pietrūka tāda ceļveža. Rokasgrāmata, kas nepalaiž garām lietas, kas ir acīmredzamas un vienkāršas jebkuram IT speciālistam.
Nākotnē es plānoju ziņu par to, kā izveidot savu pirmo pieteikumu ReactNative tādā pašā stilā, abonējiet!
Avots: www.habr.com