Bələdçi: proqramlaşdırmaya yeni başlayanlar üçün JS-də Telegram üçün sadə bir bot necə hazırlanır

Mən cəmi üç həftə əvvəl İT dünyasına dalmağa başladım. Ciddi, üç həftə əvvəl mən HTML sintaksisini belə başa düşmürdüm və proqramlaşdırma dilləri ilə tanışlığım 10 illik Paskal proqramı ilə başa çatdı. Bununla belə, mən İT düşərgəsinə getməyə qərar verdim, onun uşaqları üçün bot hazırlamaq gözəl olardı. Fikirləşdim ki, o qədər də çətin deyil.

Bu uzun bir səyahətə başladı, məndə:

  • Ubuntu ilə bulud serveri yerləşdirdi,
  • GitHub-da qeydiyyatdan keçmiş,
  • əsas JavaScript sintaksisini öyrəndi,
  • İngilis və rus dillərində bir ton məqalə oxuyun,
  • nəhayət bot yaratdı
  • nəhayət bu yazını yazdı.

Son nəticə belə görünürdü:

Bələdçi: proqramlaşdırmaya yeni başlayanlar üçün JS-də Telegram üçün sadə bir bot necə hazırlanır

Dərhal deyəcəyəm ki, bu yeni başlayanlar üçün bir məqalədir - yalnız başlanğıcdan elementar işləri necə edəcəyinizi başa düşmək üçün.

Həm də - qabaqcıl proqramçılar üçün - sadəcə onları bir az güldürmək üçün.

1. JS-də kodu necə yazmaq olar?

Başa düşdüm ki, ilk növbədə dilin sintaksisini başa düşməyə dəyər. Seçim JavaScript-ə düşdü, çünki mənim üçün növbəti addım ReactNative-də proqram yaratmaq idi. ilə başladım əlbəttə Codecademy-də və çox həvəsli idi. İlk 7 gün pulsuzdur. Real layihələr. Mən məsləhət görürəm. Keçid təxminən 25 saat çəkdi. Əslində bunların hamısı faydalı deyildi. Kursun strukturu və ətraflı ilk blok belə görünür.

Bələdçi: proqramlaşdırmaya yeni başlayanlar üçün JS-də Telegram üçün sadə bir bot necə hazırlanır

2. Botu necə qeydiyyatdan keçirmək olar?

Başlanğıcda mənə çox kömək etdi Bu məqalə müəyyən bir Arçakovun bloqundan. Başlanğıcda çeynəyir. Ancaq əsas odur ki, botun qeydiyyatı üçün təlimatlar var. Daha yaxşı yazmayacağam və bu, ən asan hissə olduğu üçün, sadəcə əsası yazacam. Siz bot yaratmalı və onun API-sini əldə etməlisiniz. Bu, başqa bir bot vasitəsilə həyata keçirilir - @BotFather. Onu teleqramda tapın, ona yazın, sadə yolu izləyin və (saxla!) API açarını əldə edin (bu rəqəmlər və hərflər toplusudur). Sonradan mənim üçün faydalı oldu.

Bələdçi: proqramlaşdırmaya yeni başlayanlar üçün JS-də Telegram üçün sadə bir bot necə hazırlanır

3. Bot kodu necə görünür?

Məqalələri uzun müddət araşdırdıqdan sonra başa düşdüm ki, telegram API-ni öyrənməkdən və sıfırdan böyük kod parçaları yaratmaqdan əziyyət çəkməmək üçün bir növ kitabxanadan (modul formatında üçüncü tərəf kodu) istifadə etməyə dəyər. Bir çərçivə tapdım teleqrafnpm və ya iplikdən istifadə edərək hansısa bir şeyə qoşulmaq lazım idi. Botun yerləşdirilməsinin nədən ibarət olduğunu o zaman belə başa düşdüm. Burada gülün. Mən inciməyəcəyəm. Səhifənin altındakı nümunələr botun sonrakı yaradılması zamanı mənə ən çox kömək etdi:

Bələdçi: proqramlaşdırmaya yeni başlayanlar üçün JS-də Telegram üçün sadə bir bot necə hazırlanır

3. 100 rubl üçün öz bulud serverinizi necə yaratmaq olar

Çox axtarışdan sonra yuxarıdakı şəkildəki 'npm' əmrinin əmr xəttinə aid olduğunu anladım. Komanda xətti hər yerdədir, lakin onu yerinə yetirmək üçün NodePackageManager-i quraşdırmalısınız. Problem onda idi ki, mən ChromeOS ilə PixelBook-da proqramlaşdırırdım. Linux ilə necə tanış olduğum haqqında burada böyük bir bloku atlayacağam - çoxları üçün bu boş və lazımsızdır. Windows və ya MacBook-unuz varsa, artıq konsolunuz var.

Bir sözlə, Linux-u Crostini vasitəsilə quraşdırdım.

Bununla belə, prosesdə anladım ki, botun hər zaman işləməsi üçün (yalnız kompüterim işə salındıqda deyil) mənə bulud serveri lazımdır. Mən seçdim vscale.io 100 rubl atdım, ən ucuz Ubuntu serverini aldım (şəkilə bax).

Bələdçi: proqramlaşdırmaya yeni başlayanlar üçün JS-də Telegram üçün sadə bir bot necə hazırlanır

4. Botu işə salmaq üçün serveri necə hazırlamaq olar

Bundan sonra anladım ki, serverdə hansısa qovluq yaratmalıyam, orada kodun mətni olan faylı yerləşdirəcəyəm. Bunu etmək üçün konsolda ("Açıq Konsol" düyməsi vasitəsilə birbaşa saytda işləyin) sürdüm

mkdir bot

bot - bu mənim qovluğumun adı oldu. Bundan sonra mən npm və Node.js quraşdırdım ki, bu da mənə sonradan *.js fayllarından kodu işlətməyə imkan verəcək.

sudo apt update
sudo apt install nodejs
sudo apt install npm

Bu mərhələdə konsolunuz vasitəsilə serverlə əlaqə qurmağı çox tövsiyə edirəm. Budur təlim Bu, serverlə birbaşa kompüterinizin konsolu vasitəsilə işləməyə imkan verəcək.

5. İlk botu necə kodlaşdırmaq olar.

İndi bu mənim üçün sadəcə bir vəhydir. İstənilən proqram sadəcə mətn sətirləridir. Onları istənilən yerə sürə bilərsiniz, istədiyiniz genişləndirmə ilə saxlaya bilərsiniz və budur. Sən gözəlsən. Mən istifadə etdim Atom, lakin həqiqətən, siz sadəcə standart bloknotda yaza bilərsiniz. Əsas odur ki, faylı sonradan istədiyiniz uzantıda saxlamaqdır. Bu, Word-də mətn yazmaq və onu saxlamaq kimidir.

Yeni fayl yaratdım, teleqraf səhifəsindəki misaldan kodu daxil etdim və index.js faylında saxladım (faylın adını ümumiyyətlə belə qoymaq lazım deyil, amma qəbul olunur). Vacibdir - BOT_TOKEN əvəzinə ikinci abzasdan API açarınızı daxil edin.

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. Kodu github vasitəsilə serverə necə itələmək olar

İndi birtəhər bu kodu serverə yükləməli və işə salmalı idim. Mənim üçün bu, çətinliyə çevrildi. Nəhayət, xeyli sınaqdan sonra anladım ki, github-da konsoldakı əmrdən istifadə edərək kodu yeniləməyə imkan verən fayl yaratmaq daha asan olacaq. ilə hesab qeydiyyatdan keçirdim GitHub etdi və etdi yeni layihəfaylı yüklədiyim yer. Bundan sonra mən (açıq!) hesabımdan bot qovluğundakı serverə faylların yüklənməsini necə quracağımı anlamalı oldum (birdən onu tərk etmisinizsə, sadəcə cd bot yazın).

7. Faylları github vasitəsilə serverə necə yükləmək olar 2-ci hissə

Mənə serverə git-dən faylları endirəcək proqram yerləşdirmək lazım idi. Yazaraq serverə git quraşdırdım

apt-get install git

Bundan sonra fayl yükləmələrini qurmalı oldum. Bunu etmək üçün komanda xəttinə girdim

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

Nəticədə layihədən hər şey serverə yükləndi. Bu mərhələdəki səhv ondan ibarət idi ki, mən artıq mövcud bot qovluğunda ikinci qovluq yaratdım. Faylın ünvanı */bot/bot/index.js kimi görünürdü

Bu problemi görməməzliyə vurmağa qərar verdim.

Və kodun birinci sətirində tələb etdiyimiz teleqraf kitabxanasını yükləmək üçün konsola əmr yazın.

npm install telegraf

8. Botu necə işə salmaq olar

Bunu etmək üçün, faylı olan qovluqda olarkən (konsol vasitəsilə qovluqdan qovluğa keçmək üçün format əmrini yerinə yetirin. cd bot Lazım olan yerdə olduğunuzdan əmin olmaq üçün orada olan bütün fayl və qovluqları konsolda göstərəcək bir əmrlə idarə edə bilərsiniz. ls -a

Başlamaq üçün konsola daxil oldum

node index.js

Heç bir səhv yoxdursa, hər şey yaxşıdır, bot işləyir. Onu telegramda axtarın. Səhv varsa, biliklərinizi 1-ci bənddən tətbiq edin.

9. Botu fonda necə idarə etmək olar

Tez başa düşəcəksiniz ki, bot yalnız siz konsolda oturduğunuz zaman işləyir. Bu problemi həll etmək üçün əmrdən istifadə etdim

screen

Bundan sonra bəzi mətnləri olan bir ekran görünəcək. Bu o deməkdir ki, hər şey qaydasındadır. Siz bulud serverində virtual serverdəsiniz. Bütün bunların necə işlədiyini daha yaxşı başa düşmək üçün - burada məqalə. Sadəcə qovluğunuza gedin və botu işə salmaq üçün əmri yazın

node index.js

10. Bot necə işləyir və onun funksionallığını necə genişləndirmək olar

Nümunədəki botumuz nə edə bilər? O bacarır

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

"Xoş gəlmisiniz!" deyin. başlanğıc anında (mətni dəyişdirməyə çalışın)

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

standart / yardım əmrinə cavab olaraq "Mənə stiker göndər" mesajını göndərin

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

stikerə cavab olaraq təsdiq göndərin

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

"Salam" yazsalar "Salam" cavabını verin
bot.launch()

Bələdçi: proqramlaşdırmaya yeni başlayanlar üçün JS-də Telegram üçün sadə bir bot necə hazırlanır

Koda baxsanız GitHub, onda siz tez başa düşəcəksiniz ki, mən bu funksionallıqdan çox da uzağa getməmişəm. Aktiv olaraq istifadə olunan funksiyadır ctx.replyWithPhoto O, müəyyən mətnə ​​cavab olaraq verilmiş foto və ya gif göndərməyə imkan verir.

Kodun əhəmiyyətli bir hissəsini bota giriş icazəsi verdiyim 11-13 yaşlı uşaqlar yazıb. Onlar öz istifadəçi işlərinə daxil olublar. Məncə, hansı hissənin onlar tərəfindən edildiyini söyləmək asandır.

Məsələn, Adventure Time cizgi filminin məşhur personajı olan GIF "jake" mesajına gəlir.

Bələdçi: proqramlaşdırmaya yeni başlayanlar üçün JS-də Telegram üçün sadə bir bot necə hazırlanır

Botu daha da inkişaf etdirmək üçün klaviaturanı birləşdirməlisiniz, nümunələrə baxın, məsələn, buradan

11. Kodu necə yeniləmək və botu yenidən işə salmaq olar

Unutmayın ki, kodu təkcə github-da deyil, həm də serverdə yeniləməlisiniz. Bunu etmək asandır - botu dayandırın (ctrl + c düyməsini basın),

- hədəf qovluğunda olmaqla konsola daxil olun, git pull
- əmri ilə botu yenidən başladın node index.js

SON

Bu faylda təsvir olunan bir çox şey qabaqcıl proqramçılar üçün çox aydın olacaq. Ancaq mən özüm bir vuruşla uçurumdan botlar dünyasına tullanmaq istəyəndə belə bir bələdçini çox darıxdım. Hər hansı bir İT mütəxəssisi üçün aşkar və sadə şeyləri qaçırmayan bələdçi.

Gələcəkdə ReactNative-də ilk müraciətimi eyni üslubda necə edəcəyim haqqında yazı planlaşdırıram, abunə olun!

Mənbə: www.habr.com

Добавить комментарий