Guide: hur man gör en enkel Telegram-bot i JS för en nybörjare inom programmering

Jag började fördjupa mig i IT-världen för bara tre veckor sedan. Allvarligt talat, för tre veckor sedan förstod jag inte ens HTML-syntax, och min introduktion till programmeringsspråk slutade med en läroplan om Pascal från 10 år sedan. Men jag bestämde mig för att gå på ett IT-läger, där det skulle vara trevligt för barnen att göra en bot. Jag bestämde mig för att det knappast var så svårt.

Detta började en lång resa där jag:

  • distribuerade en molnserver med Ubuntu,
  • registrerad på GitHub,
  • lärt sig grundläggande JavaScript-syntax,
  • läs massor av artiklar på engelska och ryska,
  • äntligen gjort en bot,
  • Jag skrev äntligen den här artikeln.

Slutresultatet såg ut ungefär så här:

Guide: hur man gör en enkel Telegram-bot i JS för en nybörjare inom programmering

Jag ska genast säga att det här är en artikel för nybörjare - bara för att förstå hur man gör grundläggande saker från grunden.

Och även - för avancerade programmerare - bara för att få dem att skratta lite.

1. Hur skriver man kod i JS?

Jag förstod att det var värt att åtminstone förstå syntaxen i språket först. Valet föll på JavaScript, helt enkelt för att nästa steg för mig var att skapa en applikation i ReactNative. Jag började med kurs på Codecademy och var mycket förtjust. De första 7 dagarna är gratis. Riktiga projekt. Jag rekomenderar. Att slutföra det tog cirka 25 timmar. I själva verket var inte allt användbart. Så här ser upplägget av kursen ut och det första blocket i detalj.

Guide: hur man gör en enkel Telegram-bot i JS för en nybörjare inom programmering

2. Hur registrerar man en bot?

Detta hjälpte mig mycket i början den här artikeln från en viss Archakovs blogg. Han tuggar i början. Men det viktigaste som finns där är instruktioner för att registrera en bot. Jag kan inte skriva det bättre, och eftersom det här är den enklaste delen skriver jag bara kärnan. Du måste skapa en bot och få dess API. Detta görs genom en annan bot - @BotFather. Hitta honom på telegram, skriv till honom, följ den enkla vägen och få (spara!) en API-nyckel (detta är en uppsättning siffror och bokstäver). Det kom väl till pass senare.

Guide: hur man gör en enkel Telegram-bot i JS för en nybörjare inom programmering

3. Hur ser botkoden ut?

Efter att ha studerat artiklarna under en längre tid insåg jag att det var värt att använda något slags bibliotek (tredjepartskod i modulformat) för att inte behöva oroa mig för att studera Telegram API och skapa stora bitar av kod från grunden. Jag hittade ramverket telegraf, som på något sätt behövde kopplas till något med hjälp av npm eller garn. Ungefär så här förstod jag då vad utplaceringen av en bot bestod av. Skratta här. Jag kommer inte att bli förolämpad. Exemplen längst ner på sidan hjälpte mig mest under det efterföljande skapandet av boten:

Guide: hur man gör en enkel Telegram-bot i JS för en nybörjare inom programmering

3. Hur man skapar din egen molnserver för 100 rubel

Efter mycket letande insåg jag att kommandot 'npm' i bilden ovan hänvisar till kommandoraden. Kommandoraden finns överallt, men för att kunna köra den måste du installera NodePackageManager. Problemet var att jag programmerade på en PixelBook med ChromeOS. Jag hoppar här över ett stort block om hur jag lärde mig Linux - för de flesta är det tomt och onödigt. Om du har Windows eller en MacBook har du redan en konsol.

I ett nötskal, jag installerade Linux via Crostini.

Men i processen insåg jag att för att boten ska fungera konstant (och inte bara när min dator är på) behöver jag en molnserver. jag valde vscale.io Jag spenderade 100 rubel och köpte den billigaste Ubuntu-servern (se bild).

Guide: hur man gör en enkel Telegram-bot i JS för en nybörjare inom programmering

4. Hur man förbereder en server för att köra en bot

Efter det insåg jag att jag behövde göra någon form av mapp på servern där jag skulle lägga filen med kodtexten. För att göra detta, i konsolen (kör direkt på webbplatsen via knappen "Öppna konsol"), gick jag in

mkdir bot

bot - detta blev namnet på min mapp. Efter det installerade jag npm och Node.js, vilket gör att jag sedan kan köra kod från filer med *.js-upplösning

sudo apt update
sudo apt install nodejs
sudo apt install npm

Jag rekommenderar starkt att du konfigurerar en anslutning till servern via din konsol i detta skede. Här instruktion Detta gör att du kan arbeta med servern direkt via konsolen på din dator.

5. Hur man skriver koden för din första bot.

Men nu är det bara en upptäckt för mig. Alla program är bara rader med text. De kan infogas var som helst, sparas med önskad förlängning, och det är allt. Du är vacker. jag använde Atom, men i verkligheten kan du bara skriva i ett vanligt anteckningsblock. Det viktigaste är att spara filen senare i önskat tillägg. Det är som att skriva text i Word och spara den.

Jag gjorde en ny fil, i vilken jag infogade koden från exemplet på telegrafsidan och sparade den i filen index.js (i allmänhet är det inte nödvändigt att namnge filen på det sättet, men det är vanligt). Viktigt - istället för BOT_TOKEN, infoga din API-nyckel från andra stycket.

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. Hur man laddar upp kod till servern via github

Nu behövde jag på något sätt ladda upp den här koden till servern och köra den. Detta blev en utmaning för mig. Som ett resultat, efter mycket prövning, insåg jag att det skulle vara lättare att skapa en fil på github som låter dig uppdatera koden med ett kommando i konsolen. Jag registrerade ett konto på github och gjorde nytt projekt, där jag laddade upp filen. Efter det behövde jag ta reda på hur jag skulle ställa in uppladdning av filer från mitt konto (öppet!) till servern i bot-mappen (om du plötsligt lämnade den, skriv bara cd-bot).

7. Hur man laddar upp filer till servern via github del 2

Jag behövde installera ett program på servern som skulle ladda ner filer från git. Jag installerade git på servern genom att skriva in i konsolen

apt-get install git

Efter det behövde jag konfigurera filuppladdningen. För att göra detta skrev jag på kommandoraden

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

Som ett resultat laddades allt från projektet upp till servern. Felet i detta skede var att jag i princip skapade en andra mapp i den redan befintliga botmappen. Adressen till filen såg ut som */bot/bot/index.js

Jag bestämde mig för att ignorera detta problem.

Och för att ladda telegrafbiblioteket, som vi begär i den första raden kod, skriv kommandot i konsolen.

npm install telegraf

8. Hur man startar en bot

För att göra detta, medan du är i mappen med filen (för att flytta från mapp till mapp via konsolen, kör formatkommandot cd bot För att se till att du är där du behöver vara kan du ange ett kommando som visar alla filer och mappar som finns där i konsolen ls -a

För att börja gick jag in i konsolen

node index.js

Om det inte finns något fel är allt bra, boten fungerar. Leta efter honom på telegram. Om det finns ett fel, tillämpa dina kunskaper från punkt 1.

9. Hur man kör en bot i bakgrunden

Ganska snabbt kommer du att förstå att boten bara fungerar när du själv sitter i konsolen. För att lösa detta problem använde jag kommandot

screen

Efter detta kommer en skärm med lite text upp. Detta betyder att allt är bra. Du är på en virtuell server på en molnserver. För att bättre förstå hur det hela fungerar - här är artikeln. Gå bara till din mapp och ange kommandot för att starta boten

node index.js

10. Hur boten fungerar och hur man utökar dess funktionalitet

Vad kan vår exempelbot göra? Han kan

bot.start((ctx) => ctx.reply('Welcome!'))

säg "Välkommen!" vid startögonblicket (försök att ändra texten)

bot.help((ctx) => ctx.reply('Send me a sticker'))

som svar på standardkommandot /help, skicka meddelandet "Skicka ett klistermärke"

bot.on('sticker', (ctx) => ctx.reply(''))

skicka godkännande som svar på ett klistermärke

bot.hears('hi', (ctx) => ctx.reply('Hey there'))

svara "Hej där" om de skriver "hej" till honom
bot.launch()

Guide: hur man gör en enkel Telegram-bot i JS för en nybörjare inom programmering

Om du tittar på koden på github, då kommer du snabbt att förstå att jag inte har gått särskilt långt från den här funktionen. Det som används aktivt är funktionen ctx.replyWithPhoto Det låter dig skicka ett specifikt foto eller gif som svar på en specifik text.

En betydande del av koden skrevs av barn i åldrarna 11-13, som jag gav tillgång till boten. De angav sitt användarfall. Jag tror att det är lätt att säga vilken del som gjordes av dem.

Till exempel kommer meddelandet "Jake" att få en GIF med en känd karaktär från den tecknade Adventure Time.

Guide: hur man gör en enkel Telegram-bot i JS för en nybörjare inom programmering

För att utveckla boten vidare behöver du ansluta ett tangentbord, se exempel, t.ex. hence

11. Hur man uppdaterar koden och startar om boten

Glöm inte att du behöver uppdatera koden inte bara på github, utan även på servern. Detta är lätt att göra - stoppa boten (tryck ctrl+c),

- gå in i konsolen medan du är i målmappen, git pull
— vi startar boten igen med kommandot node index.js

SLUT

Många av de saker som beskrivs i den här filen kommer att vara superuppenbara för avancerade programmerare. Men när jag själv försökte hoppa över avgrunden till botsvärlden i ett svep saknade jag verkligen en sådan guide. En guide som inte missar saker som är självklara och enkla för vilken IT-specialist som helst.

I framtiden planerar jag ett inlägg om hur du gör din första ansökan på ReactNative i samma stil, prenumerera!

Källa: will.com

Lägg en kommentar