Почнав да се потопувам во светот на ИТ пред само три недели. Сериозно, пред три недели не ја разбирав ни HTML синтаксата, а мојот вовед во програмските јазици заврши со училишна програма за Паскал од пред 10 години. Сепак, решив да одам во ИТ камп, каде што би било убаво децата да направат бот. Решив дека е тешко толку тешко.
Ова започна долго патување во кое јас:
- распореди облак сервер со Ubuntu,
- регистриран на GitHub,
- научена основна синтакса на JavaScript,
- прочитајте еден тон статии на англиски и руски,
- конечно направи бот,
- Конечно ја напишав оваа статија.
Конечниот резултат изгледаше отприлика вака:
Веднаш ќе кажам дека ова е статија за почетници - само за да се разбере како да се прават основни работи од нула.
И, исто така, - за напредните програмери - само за малку да се насмеат.
1. Како се пишува код во JS?
Разбрав дека вреди барем прво да се разбере синтаксата на јазикот. Изборот падна на JavaScript, едноставно затоа што следниот чекор за мене беше да создадам апликација во ReactNative. Почнав со
2. Како да регистрирате бот?
Ова многу ми помогна на почетокот
3. Како изгледа бот кодот?
Откако ги проучував написите долго време, сфатив дека вреди да користам некаква библиотека (код од трета страна во формат на модул) за да не морам да се грижам за проучување на АПИ на Telegram и создавање големи парчиња код од нула. Ја најдов рамката
3. Како да креирате сопствен облак сервер за 100 рубли
По многу пребарување, сфатив дека командата 'npm' на сликата погоре се однесува на командната линија. Командната линија е насекаде, но за да можете да ја извршите, треба да инсталирате NodePackageManager. Проблемот беше што програмирав на PixelBook со ChromeOS. Овде ќе прескокнам голем блок за тоа како го научив Linux - за повеќето е празен и непотребен. Ако имате Windows или MacBook, веќе имате конзола.
Накратко, инсталирав Linux преку Crostini.
Меѓутоа, во тој процес, сфатив дека за ботот да работи постојано (а не само кога компјутерот ми е вклучен), ми треба облак сервер. Јас избирам
4. Како да подготвите сервер за да работи бот
После тоа, сфатив дека треба да направам некаква папка на серверот во која ќе ја ставам датотеката со текстот на кодот. За да го направите ова, во конзолата (работи директно на веб-страницата преку копчето „Отвори конзола“), влегов
mkdir 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/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()
Ако го погледнете кодот на ctx.replyWithPhoto
Ви овозможува да испратите одредена фотографија или gif како одговор на одреден текст.
Значаен дел од шифрата е напишана од деца на возраст од 11-13 години, на кои им дадов пристап до ботот. Тие влегоа во нивниот кориснички случај. Мислам дека е лесно да се каже кој дел е направен од нив.
На пример, пораката „Џејк“ ќе добие GIF со познат лик од цртаниот филм „Време за авантури“.
За да го развиете ботот понатаму, треба да поврзете тастатура, видете примери, на пример,
11. Како да го ажурирате кодот и да го рестартирате ботот
Не заборавајте дека треба да го ажурирате кодот не само на github, туку и на серверот. Ова е лесно да се направи - запрете го ботот (притиснете ctrl+c),
- внесете во конзолата додека сте во целната папка, git pull
— повторно го стартуваме ботот со командата node index.js
КРАЈ
Многу од работите опишани во оваа датотека ќе бидат супер очигледни за напредните програмери. Меѓутоа, кога јас самиот се обидов да ја прескокнам бездната во светот на ботовите со еден удар, навистина пропуштив таков водич. Водич кој не пропушта работи кои се очигледни и едноставни за секој ИТ специјалист.
Во иднина, планирам објава за тоа како да ја направите вашата прва апликација на ReactNative во ист стил, претплатете се!
Извор: www.habr.com