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ü:
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
2. Botu necə qeydiyyatdan keçirmək olar?
Başlanğıcda mənə çox kömək etdi
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
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
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
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
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
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 -
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()
Koda baxsanız 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.
Botu daha da inkişaf etdirmək üçün klaviaturanı birləşdirməlisiniz, nümunələrə baxın, məsələn,
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