Водич: како направити једноставан Телеграм бот у ЈС за почетника у програмирању

Почео сам да урањам у свет ИТ-а пре само три недеље. Озбиљно, пре три недеље нисам ни разумео ХТМЛ синтаксу, а моје упознавање са програмским језицима завршило се школским планом и програмом на Пасцалу од пре 10 година. Ипак, одлучио сам да одем у ИТ камп, где би било лепо да деца направе бота. Одлучио сам да то није тако тешко.

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

  • поставио цлоуд сервер са Убунту-ом,
  • регистрован на ГитХуб-у,
  • научио основну ЈаваСцрипт синтаксу,
  • прочитајте гомилу чланака на енглеском и руском,
  • коначно направио бота,
  • Коначно сам написао овај чланак.

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

Водич: како направити једноставан Телеграм бот у ЈС за почетника у програмирању

Одмах ћу рећи да је ово чланак за почетнике - само да разумете како да урадите основне ствари од нуле.

И такође – за напредне програмере – само да их мало насмејем.

1. Како написати код у ЈС?

Схватио сам да вреди бар прво разумети синтаксу језика. Избор је пао на ЈаваСцрипт, једноставно зато што је следећи корак за мене био креирање апликације у РеацтНативе-у. Почео сам са наравно на Цодецадеми и био је веома одушевљен. Првих 7 дана је бесплатно. Прави пројекти. Препоручујем. Завршетак је трајао око 25 сати. У ствари, није све било корисно. Овако изгледа структура курса и први блок у детаље.

Водич: како направити једноставан Телеграм бот у ЈС за почетника у програмирању

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

Ово ми је много помогло у почетку Овај чланак са блога извесног Арчакова. Жваће сам почетак. Али главна ствар која је ту су упутства за регистрацију бота. Не могу боље да напишем, а пошто је ово најлакши део, написаћу само суштину. Морате да направите бота и добијете његов АПИ. Ово се ради преко другог бота - @БотФатхер. Пронађите га у телеграму, пишите му, пратите једноставан пут и набавите (сачувајте!) АПИ кључ (ово је скуп бројева и слова). Касније је добро дошао.

Водич: како направити једноставан Телеграм бот у ЈС за почетника у програмирању

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

Након што сам дуго проучавао чланке, схватио сам да је вредно користити неку врсту библиотеке (код треће стране у формату модула) како не бих морао да бринем о проучавању Телеграм АПИ-ја и креирању великих делова кода од нуле. Нашао сам оквир телеграф, који је требало некако да се повеже са нечим користећи нпм или иарн. Отприлике тако сам тада схватио у чему се састоји постављање бота. Смеј се овде. нећу се увредити. Примери на дну странице су ми највише помогли приликом накнадног креирања бота:

Водич: како направити једноставан Телеграм бот у ЈС за почетника у програмирању

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

После много претраживања, схватио сам да се команда 'нпм' на горњој слици односи на командну линију. Командна линија је свуда, али да бисте могли да је извршите, морате да инсталирате НодеПацкагеМанагер. Проблем је био у томе што сам програмирао на ПикелБоок-у са ЦхромеОС-ом. Овде ћу прескочити велики блок о томе како сам научио Линук - за већину је празан и непотребан. Ако имате Виндовс или МацБоок, већ имате конзолу.

Укратко, инсталирао сам Линукс преко Цростинија.

Међутим, у том процесу сам схватио да ми је потребан сервер у облаку да би бот радио стално (а не само када је мој рачунар укључен). ја бирам всцале.ио Потрошио сам 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

КРАЈ

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

У будућности планирам пост о томе како да направите своју прву апликацију на РеацтНативе-у у истом стилу, претплатите се!

Извор: ввв.хабр.цом

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