Би гуравхан долоо хоногийн өмнөөс л IT ертөнцөд өөрийгөө шимтэн үзэж эхэлсэн. Үнэнийг хэлэхэд, гурван долоо хоногийн өмнө би HTML синтаксийг ч ойлгодоггүй байсан бөгөөд програмчлалын хэлний талаархи миний танилцуулга 10 жилийн өмнөх Паскал хэлний сургуулийн сургалтын хөтөлбөрөөр төгссөн. Гэсэн хэдий ч би IT-ийн зусланд явахаар шийдсэн бөгөөд хүүхдүүдэд бот хийх нь сайхан байх болно. Энэ нь тийм ч хэцүү биш гэж би шийдсэн.
Энэ нь миний урт удаан аялал эхэлсэн:
- Ubuntu-тай үүлэн сервер байршуулсан,
- GitHub дээр бүртгүүлсэн,
- үндсэн JavaScript синтакс сурсан,
- англи, орос хэл дээр олон тонн нийтлэл уншиж,
- эцэст нь робот хийсэн,
- Би эцэст нь энэ нийтлэлийг бичсэн.
Эцсийн үр дүн нь иймэрхүү харагдаж байв.
Энэ бол эхлэгчдэд зориулсан нийтлэл гэдгийг би шууд хэлье - зүгээр л үндсэн зүйлийг эхнээс нь хэрхэн хийхийг ойлгохын тулд.
Мөн ахисан түвшний програмистуудын хувьд тэднийг бага зэрэг инээлгэхийн тулд.
1. JS дээр хэрхэн код бичих вэ?
Эхлээд хэлний синтаксийг ойлгох нь зүйтэй юм байна гэж би ойлгосон. Сонголт нь JavaScript дээр унасан, учир нь миний дараагийн алхам бол ReactNative дээр програм үүсгэх явдал байв. Би эхэлсэн
2. Ботыг хэрхэн бүртгүүлэх вэ?
Энэ нь надад эхэндээ их тусалсан
3. Бот код ямар харагддаг вэ?
Нийтлэлүүдийг удаан хугацаанд судалсны дараа Telegram API-г судалж, эхнээс нь том код үүсгэх талаар санаа зовохгүй байхын тулд зарим төрлийн номын сан (модуль форматын гуравдагч талын код) ашиглах нь зүйтэй гэдгийг би ойлгосон. Би хүрээг олсон
3. 100 рубльд өөрийн үүлэн серверийг хэрхэн үүсгэх вэ
Нилээн хайсны эцэст дээрх зурган дээрх 'npm' команд командын мөрөнд хамаатай гэдгийг ойлгосон. Тушаалын мөр хаа сайгүй байдаг, гэхдээ үүнийг ажиллуулахын тулд та NodePackageManager-ийг суулгах хэрэгтэй. Асуудал нь би ChromeOS-той PixelBook дээр программчилж байсан явдал байв. Би энд Линуксыг хэрхэн сурсан тухай том хэсгийг алгасах болно - ихэнх хүмүүсийн хувьд энэ нь хоосон бөгөөд шаардлагагүй байдаг. Хэрэв танд Windows эсвэл MacBook байгаа бол танд аль хэдийн консол байна.
Товчхондоо би Crostini-ээр дамжуулан Линукс суулгасан.
Гэсэн хэдий ч, процессын явцад би роботыг байнга ажиллуулахын тулд (мөн миний компьютер асаалттай үед ч биш) надад үүлэн сервер хэрэгтэй гэдгийг ойлгосон. би сонгосон
4. Бот ажиллуулах серверийг хэрхэн бэлтгэх
Үүний дараа би сервер дээр кодын текст бүхий файлыг байрлуулах ямар нэгэн хавтас хийх хэрэгтэйг ойлгосон. Үүнийг хийхийн тулд консол дээр ("Нээлттэй консол" товчлуураар дамжуулан вэбсайт дээр шууд ажиллуулна уу) би оруулав.
mkdir bot
bot - энэ нь миний хавтасны нэр болсон. Үүний дараа би npm болон Node.js суулгасан бөгөөд энэ нь надад *.js нягтралтай файлуудаас код ажиллуулах боломжийг олгоно.
sudo apt update
sudo apt install nodejs
sudo apt install npm
Энэ үе шатанд консолоор дамжуулан сервертэй холбогдохыг зөвлөж байна. Энд
5. Анхны роботынхоо кодыг хэрхэн бичих вэ.
Харин одоо энэ бол миний хувьд зүгээр л нээлт. Аливаа программ нь зөвхөн текстийн мөрүүд юм. Тэдгээрийг хаана ч оруулж, хүссэн өргөтгөлөөр хадгалах боломжтой, тэгээд л болоо. Та үзэсгэлэнтэй байна. би хэрэглэсэн
Би шинэ файл хийж, телеграф хуудсан дээрх жишээний кодыг оруулаад index.js файлд хадгалсан (ерөнхийдөө файлыг ингэж нэрлэх шаардлагагүй, гэхдээ энэ нь заншил юм). Чухал - BOT_TOKEN-ийн оронд API түлхүүрээ хоёр дахь догол мөрөнд оруулна уу.
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-ээр серверт код оруулах арга
Одоо би ямар нэгэн байдлаар энэ кодыг серверт байршуулж, ажиллуулах шаардлагатай болсон. Энэ нь миний хувьд сорилт болсон. Үүний үр дүнд маш их зовлон зүдгүүрийн дараа би консол дээрх командыг ашиглан кодыг шинэчлэх боломжтой github дээр файл үүсгэх нь илүү хялбар болохыг ойлгосон. Би дансаа бүртгүүлсэн
7. github-ээр серверт файл оруулах 2-р хэсэг
Би сервер дээр git-ээс файл татах програм суулгах хэрэгтэй болсон. Би консол дээр бичиж сервер дээр git суулгасан
apt-get install git
Үүний дараа би файл байршуулах тохиргоог хийх шаардлагатай болсон. Үүнийг хийхийн тулд би командын мөрөнд бичсэн
git clone git://github.com/b0tank/bot.git bot
Үүний үр дүнд төслийн бүх зүйлийг серверт байршуулсан. Энэ үе шатанд гарсан алдаа нь би аль хэдийн байгаа bot хавтас дотор хоёр дахь хавтас хийсэн явдал юм. Файлын хаяг нь */bot/bot/index.js шиг харагдсан
Би энэ асуудлыг үл тоомсорлохоор шийдсэн.
Кодын эхний мөрөнд бидний хүссэн телеграф номын санг ачаалахын тулд командыг консол руу оруулна уу.
npm install telegraf
8. Ботыг хэрхэн эхлүүлэх вэ
Үүнийг хийхийн тулд файлтай хавтсанд байхдаа (консолоор хавтаснаас хавтас руу шилжихийн тулд форматлах командыг ажиллуулна уу. cd bot
Та байх ёстой газраа байгаа эсэхээ шалгахын тулд консол дээр байгаа бүх файл, хавтаснуудыг харуулах командыг оруулж болно. ls -a
Эхлэхийн тулд би консол руу орлоо
node index.js
Хэрэв алдаа байхгүй бол бүх зүйл хэвийн, bot ажиллаж байна. Түүнийг телеграмаас хай. Хэрэв алдаа гарсан бол 1-р цэгээс олж авсан мэдлэгээ хэрэглээрэй.
9. Цаана нь роботыг хэрхэн ажиллуулах вэ
Бот нь зөвхөн консол дээр сууж байх үед л ажилладаг гэдгийг та маш хурдан ойлгох болно. Энэ асуудлыг шийдэхийн тулд би командыг ашигласан
screen
Үүний дараа зарим текст бүхий дэлгэц гарч ирнэ. Энэ нь бүх зүйл сайхан байна гэсэн үг юм. Та үүлэн сервер дээрх виртуал сервер дээр байна. Энэ бүхэн хэрхэн ажилладагийг илүү сайн ойлгохын тулд -
node index.js
10. Бот хэрхэн ажилладаг, түүний функцийг хэрхэн өргөжүүлэх вэ
Бидний жишээ бот юу хийж чадах вэ? Тэр чадна
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()
Хэрэв та кодыг харвал ctx.replyWithPhoto
Энэ нь танд тодорхой текстийн хариу болгон тодорхой зураг эсвэл gif илгээх боломжийг олгодог.
Кодын нэлээд хэсгийг 11-13 насны хүүхдүүд бичсэн бөгөөд би тэдэнд робот руу нэвтрэх эрх олгосон. Тэд хэрэглэгчийн нэрээ оруулсан. Аль хэсгийг нь тэд хийсэн гэдгийг хэлэхэд амархан гэж бодож байна.
Жишээлбэл, "Жэйк" гэсэн мессеж нь "Адал явдалт цаг" хүүхэлдэйн киноны алдартай дүр бүхий GIF авах болно.
Ботыг цаашид хөгжүүлэхийн тулд та гар холбох хэрэгтэй, жишээг үзнэ үү, жишээлбэл,
11. Кодоо хэрхэн шинэчлэх, ботыг дахин эхлүүлэх
Та зөвхөн github дээр биш, сервер дээр ч гэсэн кодыг шинэчлэх хэрэгтэй гэдгийг бүү мартаарай. Үүнийг хийхэд хялбар - роботыг зогсоо (ctrl+c дарна уу),
- зорилтот хавтсанд байхдаа консол руу орох, git pull
- бид ботыг тушаалаар дахин ажиллуулна node index.js
ТӨГСГӨЛ
Энэ файлд тайлбарласан олон зүйл нь дэвшилтэт програмистуудад ойлгомжтой байх болно. Гэсэн хэдий ч би өөрөө ботуудын ертөнц рүү ангалын дундуур үсрэх гэж оролдохдоо ийм хөтөчийг үнэхээр санасан. Мэдээллийн технологийн ямар ч мэргэжилтэнд ойлгомжтой, энгийн зүйлсийг орхигдуулдаггүй гарын авлага.
Ирээдүйд би ReactNative дээр анхны програмаа ижил хэв маягаар хэрхэн хийх талаар нийтлэл оруулахаар төлөвлөж байна, бүртгүүлээрэй!
Эх сурвалж: www.habr.com