Men uch hafta oldin IT olamiga sho'ng'ishni boshladim. Jiddiy ravishda, uch hafta oldin men HTML sintaksisini ham tushunmasdim va dasturlash tillariga kirishim 10 yil oldin Paskal bo'yicha maktab o'quv dasturi bilan yakunlandi. Biroq, men IT-lagerga borishga qaror qildim, u erda bolalar uchun bot qilish yaxshi bo'lardi. Bu unchalik qiyin emas deb qaror qildim.
Bu uzoq safarni boshladi, unda men:
- Ubuntu bilan bulutli serverni o'rnatdi,
- GitHub-da ro'yxatdan o'tgan,
- asosiy JavaScript sintaksisini o'rgangan,
- ingliz va rus tillarida bir nechta maqolalarni o'qing,
- nihoyat bot yaratdi,
- Men nihoyat ushbu maqolani yozdim.
Yakuniy natija quyidagicha ko'rindi:
Men darhol aytamanki, bu yangi boshlanuvchilar uchun maqola - oddiy narsalarni noldan qanday qilishni tushunish uchun.
Va shuningdek - ilg'or dasturchilar uchun - shunchaki ularni biroz kuldirish uchun.
1. JS da kod qanday yoziladi?
Men hech bo'lmaganda tilning sintaksisini tushunishga arziydi, deb tushundim. Tanlov JavaScript-ga tushdi, chunki men uchun keyingi qadam ReactNative-da dastur yaratish edi. bilan boshladim
2. Botni qanday ro'yxatdan o'tkazish kerak?
Bu menga boshida juda yordam berdi
3. Bot kodi qanday ko'rinishga ega?
Maqolalarni uzoq vaqt o'rganib chiqqanimdan so'ng, Telegram API-ni o'rganish va noldan katta kod qismlarini yaratish haqida tashvishlanmaslik uchun qandaydir kutubxonadan (modul formatidagi uchinchi tomon kodi) foydalanishga arziydi. Men ramkani topdim
3. 100 rubl uchun o'z bulutli serveringizni qanday yaratish mumkin
Ko'p izlanishlardan so'ng, yuqoridagi rasmdagi "npm" buyrug'i buyruq satriga tegishli ekanligini angladim. Buyruqlar qatori hamma joyda, lekin uni bajarish uchun NodePackageManager-ni o'rnatishingiz kerak. Muammo shundaki, men ChromeOS bilan PixelBook-da dasturlashayotgan edim. Men bu erda Linuxni qanday o'rganganligim haqidagi katta blokni o'tkazib yuboraman - ko'pchilik uchun bu bo'sh va keraksiz. Agar sizda Windows yoki MacBook bo'lsa, sizda allaqachon konsol mavjud.
Xulosa qilib aytganda, men Linuxni Crostini orqali o'rnatdim.
Biroq, bu jarayonda men botning doimiy ishlashi uchun (faqat mening kompyuterim yoqilganda emas) menga bulutli server kerakligini angladim. Men tanladim
4. Botni ishga tushirish uchun serverni qanday tayyorlash mumkin
Shundan so'ng, men serverda kod matni bilan faylni joylashtiradigan qandaydir papka yaratish kerakligini tushundim. Buni amalga oshirish uchun konsolda (to'g'ridan-to'g'ri veb-saytda "Konsolni ochish" tugmasi orqali ishga tushiring) men kiritdim
mkdir bot
bot - bu mening papkamning nomiga aylandi. Shundan so'ng men npm va Node.js ni o'rnatdim, bu menga *.js o'lchamli fayllardan kodni ishga tushirishga imkon beradi.
sudo apt update
sudo apt install nodejs
sudo apt install npm
Ushbu bosqichda konsol orqali serverga ulanishni o'rnatishni tavsiya qilaman. Bu yerga
5. Birinchi botingiz uchun kodni qanday yozish kerak.
Ammo endi bu men uchun shunchaki kashfiyot. Har qanday dastur faqat matn satrlari. Ular istalgan joyga kiritilishi mumkin, kerakli kengaytma bilan saqlanishi mumkin va bu ham. Siz go'zalsiz. foydalandim
Men yangi fayl yaratdim, unga telegraf sahifasidagi misoldagi kodni kiritdim va uni index.js faylida saqladim (umuman faylni shunday nomlash shart emas, lekin bu odatiy hol). Muhim β BOT_TOKEN oβrniga ikkinchi xatboshidan API kalitingizni kiriting.
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. Github orqali serverga kodni qanday yuklash mumkin
Endi men qandaydir tarzda ushbu kodni serverga yuklashim va uni ishga tushirishim kerak edi. Bu men uchun qiyinchilikka aylandi. Natijada, ko'p sinovlardan so'ng, men konsoldagi buyruq yordamida kodni yangilash imkonini beruvchi github-da fayl yaratish osonroq bo'lishini tushundim. Men hisob qaydnomasini ro'yxatdan o'tkazdim
7. github orqali serverga fayllarni yuklash 2-qism
Men serverga git-dan fayllarni yuklab oladigan dasturni o'rnatishim kerak edi. Men konsolga yozish orqali gitni serverga o'rnatdim
apt-get install git
Shundan so'ng men faylni yuklashni sozlashim kerak edi. Buning uchun men buyruq satriga yozdim
git clone git://github.com/b0tank/bot.git bot
Natijada, loyihadan hamma narsa serverga yuklandi. Ushbu bosqichdagi xato shundaki, men allaqachon mavjud bot papkasida ikkinchi papka yaratdim. Fayl manzili */bot/bot/index.js ga o'xshardi
Men bu muammoni e'tiborsiz qoldirishga qaror qildim.
Va biz kodning birinchi qatorida so'ragan telegraf kutubxonasini yuklash uchun konsolga buyruqni kiriting.
npm install telegraf
8. Botni qanday ishga tushirish kerak
Buning uchun fayl bilan papkada bo'lganingizda (konsol orqali jilddan jildga o'tish uchun format buyrug'ini bajaring. cd bot
Siz bo'lishingiz kerak bo'lgan joyda ekanligingizga ishonch hosil qilish uchun konsolda mavjud bo'lgan barcha fayl va papkalarni ko'rsatadigan buyruqni kiritishingiz mumkin. ls -a
Boshlash uchun men konsolga kirdim
node index.js
Agar xato bo'lmasa, hamma narsa yaxshi, bot ishlaydi. Uni telegramdan qidiring. Agar xato bo'lsa, 1-banddan olingan bilimlaringizni qo'llang.
9. Botni fonda qanday ishga tushirish kerak
Tez orada siz bot faqat konsolda o'tirganingizda ishlashini tushunasiz. Ushbu muammoni hal qilish uchun men buyruqni ishlatdim
screen
Shundan so'ng, ba'zi matnli ekran paydo bo'ladi. Bu hamma narsa yaxshi ekanligini anglatadi. Siz bulutli serverdagi virtual serverdasiz. Bularning barchasi qanday ishlashini yaxshiroq tushunish uchun -
node index.js
10. Bot qanday ishlaydi va uning funksionalligini qanday kengaytirish mumkin
Bizning misol botimiz nima qila oladi? U qila oladi
bot.start((ctx) => ctx.reply('Welcome!'))
"Xush kelibsiz!" boshida (matnni o'zgartirishga harakat qiling)
bot.help((ctx) => ctx.reply('Send me a sticker'))
standart / yordam buyrug'iga javoban "Menga stiker yuboring" xabarini yuboring
bot.on('sticker', (ctx) => ctx.reply(''))
stikerga javob sifatida tasdiqlashni yuboring
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
Agar ular unga "salom" deb yozishsa, "Salom" deb javob bering
bot.launch()
Agar siz kodga qarasangiz ctx.replyWithPhoto
Bu sizga ma'lum bir matnga javob sifatida ko'rsatilgan fotosurat yoki gif yuborish imkonini beradi.
Kodning muhim qismini 11-13 yoshli bolalar yozgan, men ularga botga kirish huquqini berganman. Ular o'zlarining foydalanuvchi ishiga kirishdi. Menimcha, qaysi qism ular tomonidan yaratilganligini aniqlash oson.
Masalan, "Jeyk" xabari "Adventure Time" multfilmidagi mashhur qahramon bilan GIF oladi.
Botni yanada rivojlantirish uchun siz klaviaturani ulashingiz kerak, misollarni ko'rib chiqing, masalan,
11. Kodni qanday yangilash va botni qayta ishga tushirish
Kodni nafaqat githubda, balki serverda ham yangilashingiz kerakligini unutmang. Buni qilish oson - botni to'xtating (ctrl+c tugmalarini bosing),
- maqsadli papkada konsolga kiring, git pull
β buyrug'i bilan botni yana ishga tushiramiz node index.js
OXIRI
Ushbu faylda tasvirlangan ko'p narsalar ilg'or dasturchilar uchun juda aniq bo'ladi. Biroq, men o'zim bir zarbada jarlikdan oshib, botlar dunyosiga sakrab o'tmoqchi bo'lganimda, men bunday qo'llanmani juda sog'indim. Har qanday IT mutaxassisi uchun aniq va oddiy narsalarni o'tkazib yubormaydigan qo'llanma.
Kelajakda men ReactNative-da birinchi arizangizni xuddi shu uslubda qanday qilish haqida post yozmoqchiman, obuna bo'ling!
Manba: www.habr.com