Rokasgrāmata: kā izveidot vienkāršu Telegram robotu JS programmā programmēšanas iesācējam

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:

Rokasgrāmata: kā izveidot vienkāršu Telegram robotu JS programmā programmēšanas iesācējam

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 protams par Codecademy un bija ļoti priecīgs. Pirmās 7 dienas ir bez maksas. Reāli projekti. ES iesaku. Tās pabeigšana aizņēma apmēram 25 stundas. Patiesībā ne viss bija noderīgs. Tā izskatās kursa struktūra un pirmais bloks sīkāk.

Rokasgrāmata: kā izveidot vienkāršu Telegram robotu JS programmā programmēšanas iesācējam

2. Kā reģistrēt botu?

Tas man ļoti palīdzēja sākumā Šis raksts no kāda Arčakova bloga. Viņš košļā pašu sākumu. Bet galvenais, kas ir, ir instrukcijas bota reģistrēšanai. Es nevaru to uzrakstīt labāk, un, tā kā šī ir vienkāršākā daļa, es uzrakstīšu tikai būtību. Jums ir jāizveido robots un jāiegūst tā API. Tas tiek darīts, izmantojot citu botu - @BotFather. Atrodiet viņu telegrammā, rakstiet viņam, sekojiet vienkāršajam ceļam un iegūstiet (saglabājiet!) API atslēgu (tas ir ciparu un burtu kopums). Vēlāk noderēja.

Rokasgrāmata: kā izveidot vienkāršu Telegram robotu JS programmā programmēšanas iesācējam

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 telegraf, kuru vajadzēja kaut kā savienot ar kaut ko, izmantojot npm vai dziju. Aptuveni šādi es toreiz sapratu, no kā sastāv bota izvietošana. Smejies šeit. Nebūšu apvainojies. Piemēri lapas apakšā man visvairāk palīdzēja turpmākajā robota izveides laikā:

Rokasgrāmata: kā izveidot vienkāršu Telegram robotu JS programmā programmēšanas iesācējam

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 vscale.io Iztērēju 100 rubļus un nopirku lētāko Ubuntu serveri (skat. attēlu).

Rokasgrāmata: kā izveidot vienkāršu Telegram robotu JS programmā programmēšanas iesācējam

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 norādījums Tas ļaus jums strādāt ar serveri tieši caur datora konsoli.

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 Atoms, bet reāli jūs varat vienkārši rakstīt standarta piezīmju grāmatiņā. Galvenais ir saglabāt failu vēlāk vēlamajā paplašinājumā. Tas ir tāpat kā teksta rakstīšana programmā Word un tā saglabāšana.

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ē GitHub un izdarīja jauns projekts, kur es augšupielādēju failu. Pēc tam man vajadzēja izdomāt, kā iestatīt failu augšupielādi no sava konta (atvērts!) uz serveri robota mapē (ja pēkšņi to pametāt, vienkārši ierakstiet cd bot).

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 - šeit ir raksts. Vienkārši dodieties uz savu mapi un ievadiet komandu, lai palaistu botu

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

Rokasgrāmata: kā izveidot vienkāršu Telegram robotu JS programmā programmēšanas iesācējam

Ja paskatās uz kodu vietnē GitHub, tad jūs ātri sapratīsit, ka es neesmu tik tālu no šīs funkcionalitātes. Aktīvi tiek izmantota funkcija 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.

Rokasgrāmata: kā izveidot vienkāršu Telegram robotu JS programmā programmēšanas iesācējam

Lai tālāk attīstītu robotprogrammatūru, jums ir jāpievieno tastatūra, skatiet piemērus, piemēram, tātad

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

Pievieno komentāru