Водич: како да направите едноставен бот на Telegram во JS за почетник во програмирање

Почнав да се потопувам во светот на ИТ пред само три недели. Сериозно, пред три недели не ја разбирав ни HTML синтаксата, а мојот вовед во програмските јазици заврши со училишна програма за Паскал од пред 10 години. Сепак, решив да одам во ИТ камп, каде што би било убаво децата да направат бот. Решив дека е тешко толку тешко.

Ова започна долго патување во кое јас:

  • распореди облак сервер со Ubuntu,
  • регистриран на GitHub,
  • научена основна синтакса на JavaScript,
  • прочитајте еден тон статии на англиски и руски,
  • конечно направи бот,
  • Конечно ја напишав оваа статија.

Конечниот резултат изгледаше отприлика вака:

Водич: како да направите едноставен бот на Telegram во JS за почетник во програмирање

Веднаш ќе кажам дека ова е статија за почетници - само за да се разбере како да се прават основни работи од нула.

И, исто така, - за напредните програмери - само за малку да се насмеат.

1. Како се пишува код во JS?

Разбрав дека вреди барем прво да се разбере синтаксата на јазикот. Изборот падна на JavaScript, едноставно затоа што следниот чекор за мене беше да создадам апликација во ReactNative. Почнав со курс на Codecademy и беше многу воодушевен. Првите 7 дена се бесплатни. Реални проекти. Препорачувам. Завршувањето траеше околу 25 часа. Всушност, не беше сето тоа корисно. Вака изгледа структурата на курсот и првиот блок во детали.

Водич: како да направите едноставен бот на Telegram во JS за почетник во програмирање

2. Како да регистрирате бот?

Ова многу ми помогна на почетокот Оваа статија од блогот на извесен Арчаков. Тој го џвака самиот почеток. Но, главната работа што е таму е инструкциите за регистрирање бот. Не можам да напишам подобро, а бидејќи ова е најлесниот дел, ќе ја напишам само суштината. Треба да креирате бот и да го добиете неговото API. Ова се прави преку друг бот - @BotFather. Најдете го на телеграма, пишете му, следете ја едноставната патека и добијте (зачувајте!) клуч API (ова е збир на броеви и букви). Подоцна ни дојде добро.

Водич: како да направите едноставен бот на Telegram во JS за почетник во програмирање

3. Како изгледа бот кодот?

Откако ги проучував написите долго време, сфатив дека вреди да користам некаква библиотека (код од трета страна во формат на модул) за да не морам да се грижам за проучување на АПИ на Telegram и создавање големи парчиња код од нула. Ја најдов рамката телеграф, што требаше некако да се поврзе со нешто користејќи npm или предиво. Отприлика вака разбрав од што се состои распоредувањето на бот. Смејте се овде. Нема да бидам навреден. Примерите на дното на страницата најмногу ми помогнаа при последователното создавање на ботот:

Водич: како да направите едноставен бот на Telegram во JS за почетник во програмирање

3. Како да креирате сопствен облак сервер за 100 рубли

По многу пребарување, сфатив дека командата 'npm' на сликата погоре се однесува на командната линија. Командната линија е насекаде, но за да можете да ја извршите, треба да инсталирате NodePackageManager. Проблемот беше што програмирав на PixelBook со ChromeOS. Овде ќе прескокнам голем блок за тоа како го научив Linux - за повеќето е празен и непотребен. Ако имате Windows или MacBook, веќе имате конзола.

Накратко, инсталирав Linux преку Crostini.

Меѓутоа, во тој процес, сфатив дека за ботот да работи постојано (а не само кога компјутерот ми е вклучен), ми треба облак сервер. Јас избирам vscale.io Потрошив 100 рубли и го купив најевтиниот Ubuntu сервер (види слика).

Водич: како да направите едноставен бот на Telegram во JS за почетник во програмирање

4. Како да подготвите сервер за да работи бот

После тоа, сфатив дека треба да направам некаква папка на серверот во која ќе ја ставам датотеката со текстот на кодот. За да го направите ова, во конзолата (работи директно на веб-страницата преку копчето „Отвори конзола“), влегов

mkdir bot

бот - ова стана името на мојата папка. После тоа, инсталирав npm и Node.js, што ќе ми овозможи потоа да стартувам код од датотеки со резолуција *.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()

Водич: како да направите едноставен бот на Telegram во JS за почетник во програмирање

Ако го погледнете кодот на github, тогаш брзо ќе разберете дека не сум отишол многу далеку од оваа функционалност. Она што активно се користи е функцијата ctx.replyWithPhoto Ви овозможува да испратите одредена фотографија или gif како одговор на одреден текст.

Значаен дел од шифрата е напишана од деца на возраст од 11-13 години, на кои им дадов пристап до ботот. Тие влегоа во нивниот кориснички случај. Мислам дека е лесно да се каже кој дел е направен од нив.

На пример, пораката „Џејк“ ќе добие GIF со познат лик од цртаниот филм „Време за авантури“.

Водич: како да направите едноставен бот на Telegram во JS за почетник во програмирање

За да го развиете ботот понатаму, треба да поврзете тастатура, видете примери, на пример, оттука

11. Како да го ажурирате кодот и да го рестартирате ботот

Не заборавајте дека треба да го ажурирате кодот не само на github, туку и на серверот. Ова е лесно да се направи - запрете го ботот (притиснете ctrl+c),

- внесете во конзолата додека сте во целната папка, git pull
— повторно го стартуваме ботот со командата node index.js

КРАЈ

Многу од работите опишани во оваа датотека ќе бидат супер очигледни за напредните програмери. Меѓутоа, кога јас самиот се обидов да ја прескокнам бездната во светот на ботовите со еден удар, навистина пропуштив таков водич. Водич кој не пропушта работи кои се очигледни и едноставни за секој ИТ специјалист.

Во иднина, планирам објава за тоа како да ја направите вашата прва апликација на ReactNative во ист стил, претплатете се!

Извор: www.habr.com

Додадете коментар