Почео сам да урањам у свет ИТ-а пре само три недеље. Озбиљно, пре три недеље нисам ни разумео ХТМЛ синтаксу, а моје упознавање са програмским језицима завршило се школским планом и програмом на Пасцалу од пре 10 година. Ипак, одлучио сам да одем у ИТ камп, где би било лепо да деца направе бота. Одлучио сам да то није тако тешко.
Ово је почело дуго путовање у којем сам:
- поставио цлоуд сервер са Убунту-ом,
- регистрован на ГитХуб-у,
- научио основну ЈаваСцрипт синтаксу,
- прочитајте гомилу чланака на енглеском и руском,
- коначно направио бота,
- Коначно сам написао овај чланак.
Коначни резултат је изгледао отприлике овако:
Одмах ћу рећи да је ово чланак за почетнике - само да разумете како да урадите основне ствари од нуле.
И такође – за напредне програмере – само да их мало насмејем.
1. Како написати код у ЈС?
Схватио сам да вреди бар прво разумети синтаксу језика. Избор је пао на ЈаваСцрипт, једноставно зато што је следећи корак за мене био креирање апликације у РеацтНативе-у. Почео сам са
2. Како регистровати бота?
Ово ми је много помогло у почетку
3. Како изгледа бот код?
Након што сам дуго проучавао чланке, схватио сам да је вредно користити неку врсту библиотеке (код треће стране у формату модула) како не бих морао да бринем о проучавању Телеграм АПИ-ја и креирању великих делова кода од нуле. Нашао сам оквир
3. Како да направите сопствени сервер у облаку за 100 рубаља
После много претраживања, схватио сам да се команда 'нпм' на горњој слици односи на командну линију. Командна линија је свуда, али да бисте могли да је извршите, морате да инсталирате НодеПацкагеМанагер. Проблем је био у томе што сам програмирао на ПикелБоок-у са ЦхромеОС-ом. Овде ћу прескочити велики блок о томе како сам научио Линук - за већину је празан и непотребан. Ако имате Виндовс или МацБоок, већ имате конзолу.
Укратко, инсталирао сам Линукс преко Цростинија.
Међутим, у том процесу сам схватио да ми је потребан сервер у облаку да би бот радио стално (а не само када је мој рачунар укључен). ја бирам
4. Како припремити сервер за покретање бота
После тога сам схватио да треба да направим неку врсту фолдера на серверу у који ћу ставити фајл са текстом кода. Да бих то урадио, у конзоли (покрени директно на веб локацији преко дугмета „Отвори конзолу“) унео сам
mkdir bot
бот - ово је постало име моје фасцикле. Након тога сам инсталирао нпм и Ноде.јс, што ће ми омогућити да затим покренем код из датотека са *.јс резолуцијом
sudo apt update
sudo apt install nodejs
sudo apt install npm
Топло препоручујем да у овој фази успоставите везу са сервером преко ваше конзоле. Ево
5. Како написати код за свог првог бота.
Али сада је то само откриће за мене. Сваки програм су само редови текста. Могу се убацити било где, сачувати са жељеним наставком и то је то. Прелепи сте. користио сам
Направио сам нови фајл, у који сам убацио код из примера на страници телеграфа и сачувао га у фајлу индек.јс (углавном није потребно да се фајл тако именује, али то је уобичајено). Важно - уместо БОТ_ТОКЕН, уметните свој АПИ кључ из другог пасуса.
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. Како учитати код на сервер преко гитхуб-а
Сада сам морао некако да отпремим овај код на сервер и да га покренем. Ово је за мене постао изазов. Као резултат тога, након много искушења, схватио сам да би било лакше направити датотеку на гитхуб-у која вам омогућава да ажурирате код помоћу команде у конзоли. Регистровао сам налог на
7. Како да отпремите датотеке на сервер преко гитхуб-а, део 2
Морао сам да инсталирам програм на серверу који би преузимао датотеке са гит-а. Инсталирао сам гит на сервер тако што сам укуцао у конзолу
apt-get install git
Након тога сам морао да конфигуришем отпремање датотеке. Да бих то урадио, укуцао сам у командну линију
git clone git://github.com/b0tank/bot.git bot
Као резултат, све из пројекта је постављено на сервер. Грешка у овој фази је била у томе што сам у суштини направио другу фасциклу унутар већ постојеће фасцикле бот-а. Адреса датотеке је изгледала као */бот/бот/индек.јс
Одлучио сам да игноришем овај проблем.
И да учитате телеграф библиотеку, коју захтевамо у првом реду кода, укуцајте команду у конзолу.
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'))
одговори „Хеј тамо“ ако му напишу „здраво“.
бот.лаунцх()
Ако погледате код на ctx.replyWithPhoto
Омогућава вам да пошаљете одређену фотографију или гиф као одговор на одређени текст.
Значајан део кода су написала деца од 11-13 година, којима сам дао приступ боту. Ушли су у свој кориснички случај. Мислим да је лако рећи који део су они направили.
На пример, порука „Џејк“ ће добити ГИФ са познатим ликом из цртаног филма Време авантуре.
Да бисте даље развијали бот, потребно је да повежете тастатуру, погледајте примере, нпр.
11. Како ажурирати код и поново покренути бот
Не заборавите да морате ажурирати код не само на гитхуб-у, већ и на серверу. Ово је лако урадити - зауставите бота (притисните цтрл+ц),
- уђите у конзолу док сте у циљној фасцикли, git pull
— поново покрећемо бота командом node index.js
КРАЈ
Многе ствари описане у овој датотеци биће веома очигледне напредним програмерима. Међутим, када сам и сам покушао да једним потезом прескочим провалију у свет ботова, заиста ми је недостајао такав водич. Водич који не пропушта ствари које су очигледне и једноставне за сваког ИТ стручњака.
У будућности планирам пост о томе како да направите своју прву апликацију на РеацтНативе-у у истом стилу, претплатите се!
Извор: ввв.хабр.цом