Útmutató: hogyan készítsünk egyszerű Telegram botot JS-ben egy kezdő programozásban

Alig három hete kezdtem el elmerülni az IT világában. Komolyan, három hete még a HTML szintaxist sem értettem, és a programozási nyelvekbe való bevezetésem egy 10 évvel ezelőtti iskolai Pascal tantervvel zárult. Én azonban úgy döntöttem, hogy elmegyek egy informatikai táborba, ahol jó lenne, ha a gyerekek botot készítenének. Úgy döntöttem, ez nem is olyan nehéz.

Ezzel elkezdődött egy hosszú utazás, amelyben én:

  • felhőkiszolgálót telepített az Ubuntuval,
  • regisztrálva a GitHubon,
  • megtanulta az alapvető JavaScript szintaxist,
  • rengeteg cikket olvasni angolul és oroszul,
  • végre csinált egy botot,
  • Végül megírtam ezt a cikket.

A végeredmény valahogy így nézett ki:

Útmutató: hogyan készítsünk egyszerű Telegram botot JS-ben egy kezdő programozásban

Azonnal elmondom, hogy ez egy kezdőknek szóló cikk - csak azért, hogy megértsék, hogyan kell az alapvető dolgokat a semmiből csinálni.

És – haladó programozóknak – csak azért, hogy megnevettessenek egy kicsit.

1. Hogyan írjunk kódot JS-ben?

Megértettem, hogy először érdemes legalább a nyelv szintaxisát megérteni. A választás a JavaScriptre esett, egyszerűen azért, mert a következő lépés számomra egy alkalmazás létrehozása volt a ReactNative-ban. azzal kezdtem tanfolyam a Codecademy-n, és nagyon el volt ragadtatva. Az első 7 nap ingyenes. Valódi projektek. Ajánlom. A befejezés körülbelül 25 órát vett igénybe. Valójában nem minden volt hasznos. Így néz ki a tanfolyam felépítése és az első blokk részletesen.

Útmutató: hogyan készítsünk egyszerű Telegram botot JS-ben egy kezdő programozásban

2. Hogyan lehet botot regisztrálni?

Ez nagyon sokat segített nekem az elején ezt a cikket egy bizonyos Archakov blogjából. A legelejét rágja. De a legfontosabb dolog a bot regisztrálására vonatkozó utasítások. Nem tudom jobban leírni, és mivel ez a legkönnyebb rész, csak a lényeget írom le. Létre kell hoznia egy botot, és be kell szereznie az API-ját. Ez egy másik boton keresztül történik - @BotFather. Keresse meg táviratban, írjon neki, kövesse az egyszerű utat, és szerezzen (mentse!) API-kulcsot (ez számokból és betűkből áll). Később jól jött.

Útmutató: hogyan készítsünk egyszerű Telegram botot JS-ben egy kezdő programozásban

3. Hogyan néz ki a bot kód?

A cikkek hosszas tanulmányozása után rájöttem, hogy érdemes valamilyen könyvtárat (harmadik féltől származó kódot modul formátumban) használni, hogy ne kelljen aggódnom a Telegram API tanulmányozása és a nagy kóddarabok elölről történő létrehozása miatt. Megtaláltam a keretet távíró, amelyet valahogyan össze kellett kapcsolni valamivel npm vagy fonal segítségével. Nagyjából így értettem akkor, hogy miből állt egy bot bevetése. Nevess itt. nem fogok megsértődni. Az oldal alján található példák segítettek a legtöbbet a bot későbbi létrehozása során:

Útmutató: hogyan készítsünk egyszerű Telegram botot JS-ben egy kezdő programozásban

3. Hogyan hozhat létre saját felhőkiszolgálót 100 rubelért

Sok keresgélés után rájöttem, hogy a fenti képen látható 'npm' parancs a parancssorra vonatkozik. A parancssor mindenhol megtalálható, de a végrehajtásához telepítenie kell a NodePackageManager-t. A probléma az volt, hogy egy PixelBookon programoztam ChromeOS-sel. Itt kihagyok egy nagy blokkot arról, hogyan tanultam meg a Linuxot - a legtöbb számára üres és szükségtelen. Ha Windows vagy MacBook van, akkor már van konzolja.

Dióhéjban a Linuxot a Crostinin keresztül telepítettem.

A folyamat során azonban rájöttem, hogy ahhoz, hogy a bot folyamatosan működjön (és ne csak akkor, amikor a számítógépem be van kapcsolva), szükségem van egy felhőkiszolgálóra. én választok vscale.io 100 rubelt költöttem, és megvettem a legolcsóbb Ubuntu szervert (lásd a képet).

Útmutató: hogyan készítsünk egyszerű Telegram botot JS-ben egy kezdő programozásban

4. Hogyan készítsünk fel egy szervert egy bot futtatására

Ezek után rájöttem, hogy valami mappát kell készítenem a szerveren, amibe a kódszöveggel ellátott fájlt beteszem. Ehhez a konzolban (közvetlenül a webhelyen a „Konzol megnyitása” gombbal fut) beírtam

mkdir bot

bot – ez lett a mappám neve. Ezt követően telepítettem az npm-et és a Node.js-t, ami lehetővé teszi, hogy kódot futtassak *.js felbontású fájlokból

sudo apt update
sudo apt install nodejs
sudo apt install npm

Erősen javaslom, hogy ebben a szakaszban hozzon létre kapcsolatot a szerverrel a konzolon keresztül. Itt oktatás Ez lehetővé teszi, hogy közvetlenül a számítógép konzolján keresztül dolgozzon a szerverrel.

5. Hogyan írjuk meg az első bot kódját.

De most ez csak egy felfedezés számomra. Bármely program csak szövegsor. Bárhová beilleszthetők, elmenthetők a kívánt kiterjesztéssel, és ennyi. Te gyönyörű vagy. használtam atom, de a valóságban egyszerűen írhat egy szabványos jegyzettömbbe. A lényeg az, hogy a fájlt később a kívánt kiterjesztéssel mentse. Ez olyan, mintha szöveget írna a Wordben és elmentené.

Csináltam egy új fájlt, amibe a telegraf oldalon lévő példa kódját beszúrtam és az index.js fájlba mentettem (általában nem kell így elnevezni a fájlt, de ez szokás). Fontos – a BOT_TOKEN helyett helyezze be az API-kulcsot a második bekezdésből.

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. Hogyan töltsünk fel kódot a szerverre githubon keresztül

Most valahogy fel kellett töltenem ezt a kódot a szerverre, és futtatnom kellett. Ez kihívás lett számomra. Ennek eredményeként, sok megpróbáltatás után rájöttem, hogy könnyebb lenne létrehozni egy fájlt a githubon, amely lehetővé teszi a kód frissítését a konzolban található paranccsal. Regisztráltam egy fiókot GitHub és megtette új projekt, ahová a fájlt feltöltöttem. Ezek után rá kellett jönnöm, hogyan állítsam be a fájlok feltöltését a fiókomból (nyitva!) a szerverre a bot mappában (ha hirtelen elhagytad, csak írj cd botot).

7. Hogyan töltsünk fel fájlokat a szerverre a githubon keresztül, 2. rész

Fel kellett telepítenem egy programot a szerverre, ami letölti a fájlokat a git-ről. A git-et úgy telepítettem a szerverre, hogy beírtam a konzolba

apt-get install git

Ezután konfigurálnom kellett a fájlfeltöltést. Ehhez beírtam a parancssorba

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

Ennek eredményeként a projekttől kezdve minden felkerült a szerverre. A hiba ebben a szakaszban az volt, hogy lényegében létrehoztam egy második mappát a már meglévő bot mappán belül. A fájl címe így nézett ki: */bot/bot/index.js

Úgy döntöttem, hogy figyelmen kívül hagyom ezt a problémát.

A telegraf könyvtár betöltéséhez pedig, amit az első kódsorban kérünk, írjuk be a parancsot a konzolba.

npm install telegraf

8. Hogyan indítsunk el egy botot

Ehhez a fájlt tartalmazó mappában (a konzolon keresztüli mappáról mappára való mozgáshoz futtassa a format parancsot cd bot Annak érdekében, hogy biztosan ott legyen, ahol lennie kell, beírhat egy parancsot, amely megjeleníti a konzolon az összes ott lévő fájlt és mappát ls -a

Kezdésként beléptem a konzolba

node index.js

Ha nincs hiba, minden rendben, a bot működik. Keresse meg táviratban. Ha hiba van, alkalmazza az 1. ponttól szerzett ismereteit.

9. Hogyan futtassunk egy botot a háttérben

Elég hamar rájön, hogy a bot csak akkor működik, ha Ön a konzolban ül. A probléma megoldására a parancsot használtam

screen

Ezt követően megjelenik egy szöveges képernyő. Ez azt jelenti, hogy minden rendben van. Ön egy virtuális szerveren van egy felhőkiszolgálón. Hogy jobban megértsük, hogyan működik mindez - itt van a cikk. Csak lépjen a mappájába, és írja be a parancsot a bot elindításához

node index.js

10. Hogyan működik a bot, és hogyan bővíthető a funkcionalitása

Mit tud a példabotunk? Ő tud

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

mondd: "Üdvözlöm!" a kezdés pillanatában (próbáld megváltoztatni a szöveget)

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

a standard /help parancsra válaszul küldje el a „Küldj egy matricát” üzenetet

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

matricára válaszul küldjön jóváhagyást

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

válaszoljon, hogy „Szia”, ha azt írják neki, hogy „szia”.
bot.launch()

Útmutató: hogyan készítsünk egyszerű Telegram botot JS-ben egy kezdő programozásban

Ha megnézed a kódot a GitHub, akkor gyorsan megérti, hogy nem mentem messzire ettől a funkciótól. Amit aktívan használnak, az a funkció ctx.replyWithPhoto Lehetővé teszi egy adott fénykép vagy gif küldését egy adott szövegre válaszul.

A kód jelentős részét 11-13 éves gyerekek írták, akiknek hozzáférést adtam a bothoz. Beírták a felhasználói esetüket. Szerintem könnyű megmondani, melyik alkatrészt ők készítették.

Például a „Jake” üzenet egy GIF-et fog kapni az Adventure Time című rajzfilm egyik híres karakterével.

Útmutató: hogyan készítsünk egyszerű Telegram botot JS-ben egy kezdő programozásban

A bot továbbfejlesztéséhez billentyűzetet kell csatlakoztatnia, lásd például a példákat, ezért

11. A kód frissítése és a bot újraindítása

Ne felejtsd el, hogy nem csak a githubon, hanem a szerveren is frissíteni kell a kódot. Ezt könnyű megtenni - állítsa le a botot (nyomja le a ctrl+c),

- lépjen be a konzolba, miközben a célmappában van, git pull
— paranccsal újra elindítjuk a botot node index.js

END

Az ebben a fájlban leírt dolgok közül sok rendkívül nyilvánvaló lesz a haladó programozók számára. Amikor azonban magam is megpróbáltam egy csapásra átugrani a szakadékot a botok világába, nagyon hiányzott egy ilyen útmutató. Útmutató, amely nem hagy ki olyan dolgokat, amelyek minden informatikus számára nyilvánvalóak és egyszerűek.

A jövőben tervezek egy bejegyzést arról, hogyan készítsd el az első alkalmazásodat a ReactNative-on ugyanebben a stílusban, iratkozz fel!

Forrás: will.com

Hozzászólás