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

Jag började dyka in 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 mina kunskaper om programmeringssprÄk slutade med skolans lÀroplan pÄ Pascal frÄn 10 Är sedan. Jag bestÀmde mig dock för att gÄ pÄ ett IT-lÀger, för vars barn det skulle vara trevligt att göra en bot. Jag bestÀmde mig för att det inte kunde vara sÄ svÄrt.

Det hÀr var början pÄ en lÄng resa dÀr jag:

  • driftsatte en molnserver med Ubuntu,
  • registrerad pĂ„ GitHub,
  • lĂ€rt sig grundlĂ€ggande JavaScript-syntax,
  • Jag lĂ€ste 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

LÄt mig sÀga direkt att den hÀr artikeln Àr 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 nöjd. De första 7 dagarna Àr gratis. Riktiga projekt. Jag rekommenderar det. Det tog cirka 25 timmar att slutföra det. I sjÀlva verket var inte allt anvÀndbart. UngefÀr sÄ ser kursstrukturen 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?

I början hjÀlpte det mig mycket den hÀr artikeln frÄn en viss Archakovs blogg. Han tuggar över i början. Men det viktigaste som finns Àr instruktionerna om hur man registrerar 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 i 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 Àr vÀrt att anvÀnda nÄgot bibliotek (tredjepartskod i modulformat) för att inte lida av att studera Telegram API och skapa stora bitar av kod frÄn grunden. Jag hittade en ram telegraf, som pÄ nÄgot sÀtt behövde kopplas till nÄgot med hjÀlp av npm eller garn. UngefÀr sÄ förstod jag dÄ vad bot-distribution bestod av. Skratta hÀr. Jag kommer inte att bli förolÀmpad. Det som hjÀlpte mig mest nÀr jag sedan skapade boten var exemplen lÀngst ner pÄ sidan:

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 refererar till kommandoraden. Kommandoraden finns överallt, men för att köra den mÄste du installera NodePackageManager. Problemet var att jag programmerade pÄ en PixelBook med ChromeOS. Jag hoppar över den stora delen om hur jag lÀrde mig det. Linux - För de flesta Àr det tomt och onödigt. Om du har Windows eller MacBook, har du redan en konsol.

I ett nötskal, jag satte 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 satte in 100 rubel och köpte den billigaste servern. Ubuntu (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 skapa nĂ„gon form av mapp pĂ„ servern, dĂ€r jag skulle lĂ€gga filen med kodtexten. För att göra detta gick jag in i konsolen (kör direkt pĂ„ webbplatsen via knappen "Öppna konsolen")

mkdir bot

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

sudo apt update
sudo apt install nodejs
sudo apt install npm

Jag rekommenderar starkt att du i detta skede konfigurerar en anslutning till servern via din konsol. 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 uppenbarelse för mig. Alla program Àr bara rader med text. Du kan ange dem var som helst, spara dem med önskat tillÀgg och det Àr allt. Du Àr vacker. jag anvÀnde Atom, men egentligen 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, klistrade in koden frÄn exemplet pÄ telegrafsidan i den och sparade den som index.js (det Àr inte nödvÀndigt att namnge filen pÄ det sÀttet, men det Àr praxis). Viktigt: ersÀtt BOT_TOKEN med din API-nyckel frÄn den andra punkten.

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 kasta den hÀr koden pÄ servern och köra den. Det blev en utmaning för mig. Till slut, efter mycket lidande, 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 stÀller in filuppladdningar frÄn mitt konto (öppet!) till servern i bot-mappen (om du plötsligt avslutar 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 stÀlla in filuppladdningar. För att göra detta gick jag in pÄ kommandoraden

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

Som ett resultat laddades allt frÄn projektet upp till servern. Felet i det hÀr skedet var att jag i princip skapade en andra mapp i den befintliga botmappen. Adressen före 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 in 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 vara sÀker pÄ 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

Du kommer snabbt att inse 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. Det 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 bot frÄn exemplet göra? Han kan göra det

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

sÀg "VÀlkommen!" i början (försök att Àndra texten)

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

som svar pÄ standardkommandot /help, skicka meddelandet "Skicka mig en klistermÀrke"

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

som svar pÄ klistermÀrket skicka godkÀnnande

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

svara "Hej dÀr" om nÄgon 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Ä förstÄr du snabbt att jag inte har gÄtt sÀrskilt lÄngt frÄn denna funktionalitet. 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 Äldern 11-13, som jag gav tillgÄng till boten. De presenterade sitt anvÀndarfall. Jag tror att det Àr lÀtt att sÀga vilken del som gjordes av dem.

Till exempel fÄr meddelandet "Jake" 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 ytterligare behöver du ansluta tangentbordet, titta pÄ exempel, till exempel, 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. Det Àr lÀtt att göra - stoppa boten (tryck pÄ 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 hoppar över saker som Àr sjÀlvklara och enkla för vilken IT-specialist som helst.

I framtiden planerar jag att skriva om hur du gör din första ReactNative-app i samma stil, prenumerera!

KĂ€lla: will.com

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster