Průvodce: jak vytvořit jednoduchého bota pro telegram v JS pro začátečníka v programování

Do světa IT jsem se začal ponořit teprve před třemi týdny. Vážně, před třemi týdny jsem nerozuměl ani syntaxi HTML a seznámení s programovacími jazyky skončilo 10 let starým sylabusem Pascalu. Rozhodl jsem se však jet na IT tábor, pro jehož děti by bylo fajn vyrobit bota. Myslel jsem, že to není tak těžké.

Tím začala dlouhá cesta, na které jsem:

  • nasadil cloudový server s Ubuntu,
  • registrovaný na GitHubu,
  • naučili se základní syntaxi JavaScriptu,
  • přečíst spoustu článků v angličtině a ruštině,
  • konečně udělal bota
  • konečně napsal tento příspěvek.

Konečný výsledek vypadal takto:

Průvodce: jak vytvořit jednoduchého bota pro telegram v JS pro začátečníka v programování

Hned řeknu, že je to článek pro začátečníky - jen proto, abyste pochopili, jak dělat základní věci od samého začátku.

A také – pro pokročilé programátory – jen aby se trochu zasmáli.

1. Jak napsat kód v JS?

Pochopil jsem, že stojí za to nejprve pochopit syntaxi jazyka. Volba padla na JavaScript, jednoduše proto, že dalším krokem pro mě bylo vytvoření aplikace v ReactNative. Začal jsem s samozřejmě na Codecademy a byl velmi nadšený. Prvních 7 dní je zdarma. Skutečné projekty. Doporučuji. Průjezd trval asi 25 hodin. Ve skutečnosti ne všechno bylo užitečné. Takto vypadá struktura kurzu a první blok v detailu.

Průvodce: jak vytvořit jednoduchého bota pro telegram v JS pro začátečníka v programování

2. Jak zaregistrovat robota?

V začátcích mi hodně pomohl v tomto článku z blogu jistého Archakova. Žvýká hned na začátku. Ale to hlavní, co tam je, je návod na registraci robota. Nebudu psát lépe, a protože je to ta nejjednodušší část, napíšu jen podstatu. Musíte vytvořit robota a získat jeho API. To se provádí prostřednictvím jiného robota - @BotFather. Najděte ho v telegramu, napište mu, postupujte podle jednoduché cesty a získejte (uložte!) API klíč (toto je sada čísel a písmen). Později se mi to hodilo.

Průvodce: jak vytvořit jednoduchého bota pro telegram v JS pro začátečníka v programování

3. Jak vypadá kód bota?

Po dlouhém studiu článků jsem si uvědomil, že stojí za to použít nějakou knihovnu (kód třetí strany ve formátu modulu), abych netrpěl studiem telegramového API a vytvářením velkých kusů kódu od začátku. Našel jsem rámec telegrafovat, které bylo potřeba nějak spojit s něčím pomocí npm nebo příze. Tak jsem tehdy pochopil, v čem spočívá nasazení bota. Tady se směj. neurazím se. Při následné tvorbě bota mi nejvíce pomohly příklady ve spodní části stránky:

Průvodce: jak vytvořit jednoduchého bota pro telegram v JS pro začátečníka v programování

3. Jak vytvořit svůj vlastní cloudový server za 100 rublů

Po dlouhém hledání jsem přišel na to, že příkaz 'npm' z obrázku výše odkazuje na příkazový řádek. Příkazový řádek je všude, ale abyste jej mohli spustit, musíte si nainstalovat NodePackageManager. Problém byl v tom, že jsem programoval na PixelBooku s ChromeOS. Přeskočím zde velký blok o tom, jak jsem se s Linuxem seznámil – pro většinu je to prázdné a zbytečné. Pokud máte Windows nebo MacBook, konzoli již máte.

Stručně řečeno, nainstaloval jsem Linux přes Crostini.

Během toho jsem si však uvědomil, že aby bot fungoval neustále (a nejen když je můj počítač zapnutý), potřebuji cloudový server. Vybírám si vscale.io Hodil jsem 100 rublů, koupil nejlevnější server Ubuntu (viz obrázek).

Průvodce: jak vytvořit jednoduchého bota pro telegram v JS pro začátečníka v programování

4. Jak připravit server na spuštění bota

Poté jsem si uvědomil, že musím na serveru vytvořit nějakou složku, do které dám soubor s textem kódu. Za tímto účelem jsem řídil v konzole (spustit přímo na webu pomocí tlačítka „Otevřít konzoli“)

mkdir bot

bot - toto se stalo názvem mé složky. Poté jsem nainstaloval npm a Node.js, které mi umožní později spouštět kód ze souborů *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Velmi doporučuji v této fázi nastavit připojení k serveru prostřednictvím vaší konzole. Tady instrukce To vám umožní pracovat se serverem přímo přes konzolu vašeho počítače.

5. Jak nakódovat prvního bota.

Teď je to pro mě jen zjevení. Jakýkoli program jsou jen řádky textu. Můžete je vozit kamkoli, uložit s požadovaným nástavcem a je to. Jsi krásná. Použil jsem Atom, ale ve skutečnosti stačí psát do standardního poznámkového bloku. Hlavní věc je uložit soubor později v požadované příponě. Je to jako napsat text ve Wordu a uložit jej.

Udělal jsem nový soubor, do kterého jsem vložil kód z příkladu na stránce telegraf a uložil do souboru index.js (soubor tak vůbec není nutné pojmenovávat, ale akceptuje se to). Důležité – místo BOT_TOKEN vložte svůj klíč API z druhého odstavce.

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. Jak poslat kód na server přes github

Nyní jsem musel nějak nahrát tento kód na server a spustit jej. Pro mě se to stalo výzvou. Nakonec jsem si po dlouhém utrpení uvědomil, že by bylo jednodušší vytvořit soubor na githubu, který vám umožní aktualizovat kód pomocí příkazu v konzole. Zaregistroval jsem si účet u GitHub a udělal nový projektkam jsem nahrál soubor. Poté jsem potřeboval zjistit, jak nastavit nahrávání souborů z mého (otevřeného!) účtu na server do složky bot (pokud jste ji náhle opustili, stačí napsat cd bot).

7. Jak nahrát soubory na server přes github část 2

Potřeboval jsem dát na server program, který by stahoval soubory z git. Nainstaloval jsem git na server zadáním

apt-get install git

Poté jsem potřeboval nastavit nahrávání souborů. Abych to udělal, vjel jsem do příkazového řádku

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

V důsledku toho bylo vše z projektu nahráno na server. Chybou v této fázi bylo, že jsem v podstatě vytvořil druhou složku uvnitř již existující složky bot. Adresa souboru vypadala jako */bot/bot/index.js

Rozhodl jsem se tento problém ignorovat.

A pro načtení knihovny telegraf, kterou požadujeme na prvním řádku kódu, zadejte příkaz do konzole.

npm install telegraf

8. Jak spustit robota

Chcete-li to provést, když jste ve složce se souborem (chcete-li se přesunout ze složky do složky prostřednictvím konzoly, spusťte příkaz format cd bot Abyste se ujistili, že jste tam, kde potřebujete, můžete zadat příkaz, který zobrazí v konzole všechny soubory a složky, které tam jsou ls -a

Pro začátek jsem vstoupil do konzole

node index.js

Pokud není žádná chyba, je vše v pořádku, robot funguje. Hledejte ho v telegramu. Pokud se vyskytne chyba, použijte své znalosti z bodu 1.

9. Jak spustit robota na pozadí

Rychle si uvědomíte, že robot funguje pouze tehdy, když sami sedíte v konzole. K vyřešení tohoto problému jsem použil příkaz

screen

Poté se objeví obrazovka s nějakým textem. To znamená, že je vše v pořádku. Nacházíte se na virtuálním serveru na cloudovém serveru. Abychom lépe pochopili, jak to všechno funguje - zde je článek. Stačí přejít do složky a zadat příkaz ke spuštění robota

node index.js

10. Jak bot funguje a jak rozšířit jeho funkčnost

Co umí náš bot z příkladu? Může

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

řekněte "Vítejte!" v okamžiku startu (zkuste změnit text)

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

v reakci na standardní příkaz /help pošlete zprávu "Pošli mi nálepku"

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

odeslat souhlas jako odpověď na nálepku

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

odpovězte „Ahoj“, pokud napíšou „ahoj“
bot.launch()

Průvodce: jak vytvořit jednoduchého bota pro telegram v JS pro začátečníka v programování

Pokud se podíváte na kód na GitHub, pak si rychle uvědomíte, že jsem od této funkce příliš daleko nezašel. Co se aktivně využívá, je funkce ctx.replyWithPhoto Umožňuje odeslat danou fotografii nebo gif jako odpověď na určitý text.

Významnou část kódu napsaly děti ve věku 11-13 let, kterým jsem umožnil přístup k botovi. Zadali své uživatelské případy. Myslím, že je snadné říct, kterou část udělali oni.

Například GIF se slavnou postavou z animovaného filmu Adventure Time přichází ke zprávě „jake“.

Průvodce: jak vytvořit jednoduchého bota pro telegram v JS pro začátečníka v programování

Pro další vývoj robota je potřeba připojit klávesnici, viz příklady, např. proto

11. Jak aktualizovat kód a restartovat bota

Nezapomeňte, že musíte aktualizovat kód nejen na githubu, ale také na serveru. Je to snadné - zastavte robota (stiskněte ctrl + c),

- vstoupit do konzoly v cílové složce, git pull
- restartujte robota příkazem node index.js

KONEC

Mnoho věcí popsaných v tomto souboru bude pro pokročilé programátory naprosto zřejmé. Když jsem se však sám pokoušel skočit přes propast do světa botů na jeden zátah, takový průvodce mi opravdu chyběl. Průvodce, kterému neuniknou samozřejmé a jednoduché věci pro žádného IT specialistu.

V budoucnu plánuji příspěvek o tom, jak udělat svou první aplikaci na ReactNative ve stejném stylu, přihlaste se!

Zdroj: www.habr.com

Přidat komentář