Нұсқау: бағдарламалауды жаңадан бастағандар үшін JS жүйесінде қарапайым Telegram ботын қалай жасауға болады

Мен IT әлеміне үш апта бұрын ғана кірістім. Шынымды айтсам, үш апта бұрын мен HTML синтаксисін де түсінбедім, ал менің бағдарламалау тілдеріне кіріспе 10 жыл бұрынғы Паскаль тіліндегі мектеп бағдарламасымен аяқталды. Дегенмен, мен IT лагеріне баруды шештім, ол жерде балаларға бот жасағаны жақсы болар еді. Мен бұл қиын емес деп шештім.

Бұл мен ұзақ сапар бастадым:

  • Ubuntu-мен бұлттық серверді орналастырды,
  • GitHub сайтында тіркелген,
  • негізгі JavaScript синтаксисін үйренді,
  • ағылшын және орыс тілдеріндегі көптеген мақалаларды оқыңыз,
  • ақырында бот жасады,
  • Ақырында мен бұл мақаланы жаздым.

Соңғы нәтиже келесідей көрінді:

Нұсқау: бағдарламалауды жаңадан бастағандар үшін JS жүйесінде қарапайым Telegram ботын қалай жасауға болады

Мен бұл жаңадан бастаушыларға арналған мақала екенін бірден айтамын - қарапайым нәрселерді нөлден қалай жасау керектігін түсіну үшін.

Сондай-ақ - озық бағдарламашылар үшін - оларды сәл күлдірту үшін.

1. JS жүйесінде кодты қалай жазуға болады?

Ең алдымен тілдің синтаксисін түсіну керек екенін түсіндім. Таңдау JavaScript-ке түсті, себебі мен үшін келесі қадам ReactNative бағдарламасында қосымша жасау болды. мен бастадым әрине Codecademy-де және өте қуанышты болды. Алғашқы 7 күн тегін. Нақты жобалар. Мен ұсынамын. Оны аяқтауға шамамен 25 сағат кетті. Шындығында, мұның бәрі пайдалы болған жоқ. Бұл курстың құрылымы және егжей-тегжейлі бірінші блок сияқты көрінеді.

Нұсқау: бағдарламалауды жаңадан бастағандар үшін JS жүйесінде қарапайым Telegram ботын қалай жасауға болады

2. Ботты қалай тіркеуге болады?

Бұл маған басында көп көмектесті Бұл мақала белгілі бір Арчаковтың блогынан. Ол ең басында шайнайды. Бірақ ең бастысы - ботты тіркеу нұсқаулары. Мен оны жақсырақ жаза алмаймын, бұл ең оңай бөлігі болғандықтан, мен жай ғана түйінді жазамын. Сізге бот жасап, оның API интерфейсін алу керек. Бұл басқа бот арқылы жасалады - @BotFather. Оны телеграмнан табыңыз, оған жазыңыз, қарапайым жолды ұстаныңыз және API кілтін алыңыз (сақтаңыз!) (бұл сандар мен әріптер жинағы). Бұл кейінірек пайдалы болды.

Нұсқау: бағдарламалауды жаңадан бастағандар үшін JS жүйесінде қарапайым Telegram ботын қалай жасауға болады

3. Бот коды неге ұқсайды?

Мақалаларды ұзақ уақыт зерттегеннен кейін мен Telegram API-ді зерттеу және нөлден бастап кодтың үлкен бөліктерін жасау туралы алаңдамау үшін қандай да бір кітапхана түрін (модуль пішіміндегі үшінші тарап коды) пайдалану керек екенін түсіндім. Мен шеңберді таптым телеграф, ол npm немесе жіп арқылы қандай да бір нәрсеге қосылуы керек еді. Мен ботты орналастырудың неден тұратынын шамамен осылай түсіндім. Мұнда күліңіз. Мен ренжімеймін. Беттің төменгі жағындағы мысалдар ботты кейінгі жасау кезінде маған көп көмектесті:

Нұсқау: бағдарламалауды жаңадан бастағандар үшін JS жүйесінде қарапайым Telegram ботын қалай жасауға болады

3. 100 рубльге өзіңіздің бұлттық серверіңізді қалай жасауға болады

Көп іздегеннен кейін мен жоғарыдағы суреттегі «npm» пәрмені пәрмен жолына қатысты екенін түсіндім. Пәрмен жолы барлық жерде, бірақ оны орындау үшін NodePackageManager орнату қажет. Мәселе ChromeOS жүйесі бар PixelBook бағдарламасында бағдарламалау болды. Мен бұл жерде Linux-ті қалай үйренгенім туралы үлкен блокты өткізіп жіберемін - көпшілігі үшін бұл бос және қажет емес. Егер сізде Windows немесе MacBook болса, сізде консоль әлдеқашан бар.

Бір сөзбен айтқанда, мен Linux жүйесін Crostini арқылы орнаттым.

Дегенмен, процесте мен боттың тұрақты жұмыс істеуі үшін (тек менің компьютерім қосулы кезде ғана емес) маған бұлттық сервер қажет екенін түсіндім. Мен таңдадым vscale.io Мен 100 рубль жұмсадым және ең арзан Ubuntu серверін сатып алдым (суретті қараңыз).

Нұсқау: бағдарламалауды жаңадан бастағандар үшін JS жүйесінде қарапайым Telegram ботын қалай жасауға болады

4. Ботты іске қосу үшін серверді қалай дайындау керек

Осыдан кейін мен серверде код мәтіні бар файлды қоятын қандай да бір қалта жасау керек екенін түсіндім. Мұны істеу үшін консольде («Ашық консоль» түймесі арқылы веб-сайтта тікелей іске қосыңыз) мен енгіздім

mkdir bot

bot - бұл менің қалтамның атауы болды. Осыдан кейін мен *.js ажыратымдылығы бар файлдардан кодты іске қосуға мүмкіндік беретін npm және Node.js орнаттым.

sudo apt update
sudo apt install nodejs
sudo apt install npm

Мен осы кезеңде консоль арқылы серверге қосылым орнатуды ұсынамын. Мұнда нұсқаулық Бұл сервермен тікелей компьютердің консолі арқылы жұмыс істеуге мүмкіндік береді.

5. Бірінші боттың кодын қалай жазуға болады.

Бірақ қазір бұл мен үшін жаңалық. Кез келген бағдарлама тек мәтін жолдары болып табылады. Оларды кез келген жерде енгізуге, қалаған кеңейтіммен сақтауға болады, және бәрі де. Сен әдемісің. Мен пайдаландым атом, бірақ шын мәнінде, сіз жай ғана стандартты блокнотта жаза аласыз. Ең бастысы - файлды кейінірек қалаған кеңейтімде сақтау. Бұл Word бағдарламасында мәтін жазып, оны сақтау сияқты.

Мен жаңа файл жасадым, оған телеграф бетіндегі мысалдағы кодты енгіздім және оны 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-та консольдегі пәрменді пайдаланып кодты жаңартуға мүмкіндік беретін файлды жасау оңайырақ болатынын түсіндім. Мен тіркелгімді тіркедім GitHub жасады жаңа жоба, файлды жүктеп салған жерім. Осыдан кейін мен тіркелгімнен файлдарды жүктеп салуды қалай орнату керектігін анықтау керек болды (ашыңыз!) бот қалтасындағы серверге (егер сіз оны кенеттен қалдырсаңыз, тек cd bot жазыңыз).

7. github арқылы серверге файлдарды қалай жүктеуге болады 2 бөлім

Маған git-тен файлдарды жүктеп алатын бағдарламаны серверге орнату керек болды. Мен консольге теру арқылы серверге git орнаттым

apt-get install git

Осыдан кейін мен файлды жүктеп салуды конфигурациялауым керек болды. Ол үшін пәрмен жолына тердім

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

Нәтижесінде жобадан барлығы серверге жүктелді. Бұл кезеңдегі қателік бұрыннан бар бот қалтасының ішінде екінші қалтаны жасағанымда болды. Файлдың мекенжайы */bot/bot/index.js сияқты болды

Мен бұл мәселені елемеу туралы шешім қабылдадым.

Біз кодтың бірінші жолында сұрайтын телеграф кітапханасын жүктеу үшін консольге пәрменді теріңіз.

npm install telegraf

8. Ботты іске қосу жолы

Ол үшін файлы бар қалтада болған кезде (консоль арқылы қалтадан қалтаға өту үшін пішім пәрменін орындаңыз) cd bot Қажет жерде екеніңізге көз жеткізу үшін консольде бар барлық файлдар мен қалталарды көрсететін пәрменді енгізуге болады. ls -a

Бастау үшін мен консольге кірдім

node index.js

Егер қате болмаса, бәрі жақсы, бот жұмыс істейді. Оны телеграмнан іздеңіз. Егер қате болса, 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()

Нұсқау: бағдарламалауды жаңадан бастағандар үшін JS жүйесінде қарапайым Telegram ботын қалай жасауға болады

Егер сіз кодты қарасаңыз GitHub, сонда сіз менің бұл функционалдылықтан алыс кетпегенімді тез түсінесіз. Белсенді түрде қолданылатын функция ctx.replyWithPhoto Ол белгілі бір мәтінге жауап ретінде көрсетілген фотосуретті немесе GIF жіберуге мүмкіндік береді.

Кодтың едәуір бөлігін 11-13 жас аралығындағы балалар жазды, мен оларға ботқа кіруге рұқсат бердім. Олар өздерінің пайдаланушы кейпін енгізді. Қай бөлікті солардың жасағанын айту оңай деп ойлаймын.

Мысалы, «Джейк» хабары Adventure Time мультфильмінің әйгілі кейіпкері бар GIF алады.

Нұсқау: бағдарламалауды жаңадан бастағандар үшін JS жүйесінде қарапайым Telegram ботын қалай жасауға болады

Ботты одан әрі дамыту үшін сізге пернетақтаны қосу керек, мысалдарды қараңыз, мысалы, мұнда

11. Кодты жаңарту және ботты қайта іске қосу

Кодты тек github-та ғана емес, серверде де жаңарту керек екенін ұмытпаңыз. Мұны істеу оңай - ботты тоқтату (ctrl+c пернелерін басыңыз),

- мақсатты қалтада консольге кіру, git pull
— командасымен ботты қайтадан іске қосамыз node index.js

СОҢЫ

Бұл файлда сипатталған нәрселердің көпшілігі озық бағдарламашылар үшін өте айқын болады. Дегенмен, мен өзім боттар әлеміне шыңыраудан аттап өтуге тырысқанда, мен мұндай гидті қатты сағындым. Кез келген IT маманы үшін түсінікті және қарапайым нәрселерді жіберіп алмайтын нұсқаулық.

Болашақта мен ReactNative қолданбасында бірінші қосымшаңызды сол стильде қалай жасау керектігі туралы пост жоспарлап отырмын, жазылыңыз!

Ақпарат көзі: www.habr.com

пікір қалдыру