{"id":31044,"date":"2019-10-31T21:39:05","date_gmt":"2019-10-31T18:39:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii\/"},"modified":"2019-10-31T21:39:05","modified_gmt":"2019-10-31T18:39:05","slug":"rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii","title":{"rendered":"N\u00e1vod: Jak vytvo\u0159it jednoduch\u00e9ho bota pro Telegram v JS pro za\u010d\u00e1te\u010dn\u00edky v programov\u00e1n\u00ed","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Do IT sv\u011bta jsem se pono\u0159il teprve p\u0159ed t\u0159emi t\u00fddny. Opravdu, p\u0159ed t\u0159emi t\u00fddny jsem ani nech\u00e1pal syntaxi HTML a sezn\u00e1men\u00ed se s programovac\u00edmi jazyky kon\u010dilo \u0161koln\u00edm programem v Pascale p\u0159ed deseti lety. Rozhodl jsem se v\u0161ak jet na IT t\u00e1bor, kde by pro d\u011bti bylo fajn vytvo\u0159it bota. Rozhodl jsem se, \u017ee to pravd\u011bpodobn\u011b nebude tak obt\u00ed\u017en\u00e9.<\/p>\n<p>T\u00edm za\u010dala dlouh\u00e1 cesta, b\u011bhem kter\u00e9 jsem:<\/p>\n<ul>\n<li>zprovoznil cloudov\u00fd server s Ubuntu,<\/li>\n<li>zaregistroval se na GitHub,<\/li>\n<li>nau\u010dil se z\u00e1kladn\u00ed syntaxi JavaScriptu,<\/li>\n<li>p\u0159e\u010detl jsem hromadu \u010dl\u00e1nk\u016f v angli\u010dtin\u011b a ru\u0161tin\u011b,<\/li>\n<li>kone\u010dn\u011b jsem ud\u011blal bota,<\/li>\n<li>napsal jsem kone\u010dn\u011b tento \u010dl\u00e1nek.<\/li>\n<\/ul>\n<p>\nV\u00fdsledn\u00fd produkt vypadal p\u0159ibli\u017en\u011b takto:<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e1vod: Jak vytvo\u0159it jednoduch\u00e9ho bota pro Telegram v JS pro za\u010d\u00e1te\u010dn\u00edky v programov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/04\/fc072aaa72b23c95faeaa09be8a652db.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n\u0158eknu to hned, je to \u010dl\u00e1nek pro za\u010d\u00e1te\u010dn\u00edky \u2014 abyste prost\u011b pochopili, jak d\u011blat z\u00e1kladn\u00ed v\u011bci od sam\u00e9ho za\u010d\u00e1tku.<\/p>\n<p>A tak\u00e9 \u2014 pro pokro\u010dil\u00e9 program\u00e1tory \u2014 prost\u011b aby se trochu zasm\u00e1li. <\/p>\n<p><b>1. Jak ps\u00e1t k\u00f3d v JS?<\/b><\/p>\n<p>Ch\u00e1pal jsem, \u017ee bych m\u011bl nejprve pochopit syntaxi jazyka. V\u00fdb\u011br padl na JavaScript, jednodu\u0161e proto, \u017ee dal\u0161\u00edm krokem pro m\u011b bylo vytvo\u0159en\u00ed aplikace v ReactNative. Za\u010dal jsem s <noindex><a rel=\"nofollow\" href=\"https:\/\/www.codecademy.com\/learn\/introduction-to-javascript\">kurzem<\/a><\/noindex> na Codecademy a byl jsem nad\u0161en\u00fd. Prvn\u00edch 7 dn\u00ed zdarma. Skute\u010dn\u00e9 projekty. Doporu\u010duji. U\u010den\u00ed mi zabralo asi 25 hodin. Ve skute\u010dnosti by se ale hodn\u011b z toho dalo pou\u017e\u00edt. Takto vypad\u00e1 struktura kurzu a podrobn\u011b prvn\u00ed blok.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e1vod: Jak vytvo\u0159it jednoduch\u00e9ho bota pro Telegram v JS pro za\u010d\u00e1te\u010dn\u00edky v programov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/04\/e63be1e6c7f32cc3c929e0145996d569.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>2. Jak zaregistrovat bota?<\/b><\/p>\n<p>Na za\u010d\u00e1tku mi velmi pomohl tento <noindex><a rel=\"nofollow\" href=\"https:\/\/archakov.im\/post\/telegram-bot-on-nodejs.html\">this article<\/a><\/noindex> z blogu jak\u00e9hosi Ar\u010dakova. Vysv\u011btluje \u00fapln\u00e9 z\u00e1klady. Ale to hlavn\u00ed, co tam je \u2014 to je n\u00e1vod na registraci bota. Lep\u0161\u00ed u\u017e to nenap\u00ed\u0161u, a proto\u017ee to je ta nejsnadn\u011bj\u0161\u00ed \u010d\u00e1st, jednodu\u0161e nap\u00ed\u0161u podstatu. Je pot\u0159eba vytvo\u0159it bota a z\u00edskat jeho API. To se d\u011bl\u00e1 p\u0159es jin\u00e9ho bota \u2014 @BotFather. Najd\u011bte ho v telegramu, napi\u0161te mu, projd\u011bte se jednoduch\u00fdm procesem a z\u00edskejte (ulo\u017ete!) API kl\u00ed\u010d (to je soubor \u010d\u00edsel a p\u00edsmen). Ten mi pozd\u011bji pomohl.<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e1vod: Jak vytvo\u0159it jednoduch\u00e9ho bota pro Telegram v JS pro za\u010d\u00e1te\u010dn\u00edky v programov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/04\/b8181f6ad1c67dd47dd337f8171bf941.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>3. Jak vypad\u00e1 k\u00f3d bota?<\/b><\/p>\n<p>Po dlouh\u00e9m studiu \u010dl\u00e1nk\u016f jsem zjistil, \u017ee bych m\u011bl pou\u017e\u00edt n\u011bjakou knihovnu (extern\u00ed k\u00f3d ve form\u00e1tu modulu), abych se nemusel tr\u00e1pit s u\u010den\u00edm API telegramu a psan\u00edm velk\u00fdch kus\u016f k\u00f3du od nuly. Na\u0161el jsem framework <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/telegraf\/telegraf\">telegraf<\/a><\/noindex>, kter\u00fd bylo pot\u0159eba n\u011bjak p\u0159ipojit k n\u011b\u010demu pomoc\u00ed npm nebo yarn. Celkem takto jsem ch\u00e1pal, z \u010deho se skl\u00e1d\u00e1 nasazen\u00ed bota. Sm\u011bjte se. Nebudu se zlobit. Nejv\u00edce mi p\u0159i n\u00e1sledn\u00e9m vytv\u00e1\u0159en\u00ed bota pomohly p\u0159\u00edklady uveden\u00e9 na konci str\u00e1nky:<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e1vod: Jak vytvo\u0159it jednoduch\u00e9ho bota pro Telegram v JS pro za\u010d\u00e1te\u010dn\u00edky v programov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/04\/711b252c5118b47a14c52862dd869058.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>3. Jak vytvo\u0159it vlastn\u00ed cloudov\u00fd server za 100 korun<\/b><\/p>\n<p>Po dlouh\u00e9m hled\u00e1n\u00ed jsem pochopil, \u017ee t\u00fdm 'npm' na obr\u00e1zku v\u00fd\u0161e se vztahuje k p\u0159\u00edkazov\u00e9mu \u0159\u00e1dku. P\u0159\u00edkazov\u00fd \u0159\u00e1dek je v\u0161ude, ale abyste jej mohli prov\u00e9st, je t\u0159eba nainstalovat NodePackageManager. Probl\u00e9m byl v tom, \u017ee jsem programoval na PixelBooku s ChromeOS. Tento velk\u00fd blok o tom, jak jsem pozn\u00e1val Linux, zde vynech\u00e1m \u2013 pro v\u011bt\u0161inu lid\u00ed je to zbyte\u010dn\u00e9 a nepodstatn\u00e9. Pokud m\u00e1te Windows nebo MacBook, ji\u017e m\u00e1te konzoli. <\/p>\n<p>Jin\u00fdmi slovy, nainstaloval jsem Linux p\u0159es Crostini. <\/p>\n<p>B\u011bhem procesu jsem si ale uv\u011bdomil, \u017ee pro trval\u00fd provoz bota (nejen kdy\u017e m\u00e1m zapnut\u00fd po\u010d\u00edta\u010d) pot\u0159ebuji cloudov\u00fd server. Vybral jsem si <noindex><a rel=\"nofollow\" href=\"http:\/\/vscale.io\">vscale.io<\/a><\/noindex> Dodal jsem 100 korun, koupil nejlevn\u011bj\u0161\u00ed server Ubuntu (viz obr\u00e1zek). <\/p>\n<p><img decoding=\"async\" alt=\"N\u00e1vod: Jak vytvo\u0159it jednoduch\u00e9ho bota pro Telegram v JS pro za\u010d\u00e1te\u010dn\u00edky v programov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/04\/74cdc3858900bbd0d95715f5371ef52a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>4. Jak p\u0159ipravit server pro spu\u0161t\u011bn\u00ed bota<\/b><\/p>\n<p>Po tom jsem pochopil, \u017ee mus\u00edm na serveru vytvo\u0159it n\u011bjakou slo\u017eku, do kter\u00e9 um\u00edst\u00edm soubor s textem k\u00f3du. K tomu jsem v konzoli (spou\u0161t\u00edm p\u0159\u00edmo na webu kliknut\u00edm na tla\u010d\u00edtko \u00abOtev\u0159\u00edt konzoli\u00bb) zadal <\/p>\n<pre><code class=\"plaintext\">mkdir bot<\/code><\/pre>\n<p>\nbot \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0435\u0439 \u043f\u0430\u043f\u043a\u0438. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b npm \u0438 Node.js, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043c\u043d\u0435 \u043f\u043e\u0442\u043e\u043c \u043a\u043e\u0434 \u0438\u0437 \u0444\u0430\u0439\u043b\u0438\u043a\u043e\u0432 \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c *.js<\/p>\n<pre><code class=\"plaintext\">sudo apt update\nsudo apt install nodejs\nsudo apt install npm<\/code><\/pre>\n<p>\nV\u0159ele doporu\u010duji nastavit p\u0159ipojen\u00ed k serveru p\u0159es svou konzoli. Tady je <noindex><a rel=\"nofollow\" href=\"https:\/\/community.vscale.io\/hc\/ru\/community\/posts\/207745269-%D0%9A%D0%B0%D0%BA-%D1%81%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-SSH-%D0%BA%D0%BB%D1%8E%D1%87-%D0%B4%D0%BB%D1%8F-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0-%D0%BD%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80\">p\u0159\u00edru\u010dka<\/a><\/noindex> To v\u00e1m umo\u017en\u00ed pracovat se serverem p\u0159\u00edmo p\u0159es konzoli va\u0161eho po\u010d\u00edta\u010de.<\/p>\n<p><b>5. Jak napsat k\u00f3d prvn\u00edho bota.<\/b><\/p>\n<p>A te\u010f pro m\u011b velk\u00e9 odhalen\u00ed. Jak\u00fdkoli program \u2014 to jsou prost\u011b \u0159\u00e1dky textu. M\u016f\u017eete je zadat kamkoliv, ulo\u017eit s pot\u0159ebnou p\u0159\u00edponou a hotovo. Jste skv\u011bl\u00ed. Pou\u017e\u00edval jsem <noindex><a rel=\"nofollow\" href=\"https:\/\/atom.io\/\">Atom<\/a><\/noindex>, ale ve skute\u010dnosti je mo\u017en\u00e9 ps\u00e1t jen v oby\u010dejn\u00e9m notepadu. Hlavn\u00ed je pak ulo\u017eit soubor s pot\u0159ebnou p\u0159\u00edponou. Je to jako napsat text ve Wordu a ulo\u017eit. <\/p>\n<p>Vytvo\u0159il jsem nov\u00fd soubor, do kter\u00e9ho jsem vlo\u017eil k\u00f3d z p\u0159\u00edkladu na str\u00e1nce telegraf a ulo\u017eil ho jako index.js (opravdu nen\u00ed nutn\u00e9 naz\u00fdvat soubor takto, ale je to obvykl\u00e9). D\u016fle\u017eit\u00e9 je \u2014 m\u00edsto BOT_TOKEN vlo\u017ete sv\u016fj API kl\u00ed\u010d z druh\u00e9ho bodu.<\/p>\n<pre><code class=\"plaintext\">const Telegraf = require('telegraf')\n\nconst bot = new Telegraf(process.env.BOT_TOKEN)\nbot.start((ctx) =&gt; ctx.reply('V\u00edtejte!'))\nbot.help((ctx) =&gt; ctx.reply('Po\u0161lete mi n\u00e1lepku'))\nbot.on('sticker', (ctx) =&gt; ctx.reply(''))\nbot.hears('ahoj', (ctx) =&gt; ctx.reply('Ahoj'))\nbot.launch()<\/code><\/pre>\n<p>\n<b>6. Jak nahr\u00e1t k\u00f3d na server p\u0159es github<\/b><\/p>\n<p>Nyn\u00ed jsem musel n\u011bjak nahr\u00e1t tento k\u00f3d na server a spustit ho. Pro m\u011b to bylo v\u00fdzvou. Nakonec, po dlouh\u00e9m sna\u017een\u00ed, jsem si uv\u011bdomil, \u017ee bude jednodu\u0161\u0161\u00ed vytvo\u0159it soubor na githubu, kter\u00fd umo\u017e\u0148uje aktualizovat k\u00f3d pomoc\u00ed p\u0159\u00edkazu v konzoli. Zaregistroval jsem si \u00fa\u010det na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/\">github<\/a><\/noindex> a ud\u011blal <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/b0tank\/bot\">nov\u00fd projekt<\/a><\/noindex>, kam jsem nahr\u00e1l soubor. Pot\u00e9 jsem musel pochopit, jak nastavit nahr\u00e1v\u00e1n\u00ed soubor\u016f z m\u00e9ho (otev\u0159en\u00e9ho!) \u00fa\u010dtu na server do slo\u017eky bot (pokud jste z n\u00ed n\u00e1hodou vy\u0161li \u2014 sta\u010d\u00ed napsat cd bot).<\/p>\n<p><b>7. Jak nahr\u00e1t soubory na server p\u0159es github \u010d\u00e1st 2<\/b><\/p>\n<p>Musel jsem na server nainstalovat program, kter\u00fd bude nahr\u00e1vat soubory z gitu. Nainstaloval jsem git na server zad\u00e1n\u00edm v konzoli <\/p>\n<pre><code class=\"plaintext\">apt-get install git<\/code><\/pre>\n<p>\nPot\u00e9 jsem musel nastavit nahr\u00e1v\u00e1n\u00ed soubor\u016f. K tomu jsem zadal do p\u0159\u00edkazov\u00e9ho \u0159\u00e1dku <\/p>\n<pre><code class=\"plaintext\">git clone git:\/\/github.com\/b0tank\/bot.git bot\n<\/code><\/pre>\n<p>\n\u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435 \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u043e\u0441\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u041e\u0448\u0438\u0431\u043a\u043e\u0439 \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0431\u044b\u043b\u043e, \u0447\u0442\u043e \u044f, \u043f\u043e \u0441\u0443\u0442\u0438, \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u0442\u043e\u0440\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0432\u043d\u0443\u0442\u0440\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043f\u0430\u043f\u043a\u0438 bot. \u0410\u0434\u0440\u0435\u0441 \u0434\u043e \u0444\u0430\u0439\u043b\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043a\u0430\u043a *\/bot\/bot\/index.js<\/p>\n<p>Rozhodl jsem se tuto probl\u00e9m ignorovat.<\/p>\n<p>Abych nahr\u00e1l knihovnu telegraf, kterou vy\u017eadujeme v prvn\u00ed \u0159\u00e1dku k\u00f3du, zadejte do konzole p\u0159\u00edkaz.<\/p>\n<pre><code class=\"plaintext\">npm install telegraf<\/code><\/pre>\n<p>\n<b>8. Jak spustit bota<\/b><\/p>\n<p>K tomu, zat\u00edmco se nach\u00e1z\u00edte ve slo\u017ece se souborem (abychom p\u0159ech\u00e1zeli mezi slo\u017ekami p\u0159es konzoli \u2014 pou\u017eijte p\u0159\u00edkaz form\u00e1tu <code>cd bot<\/code> Abychom se ujistili, \u017ee jsme tam, kde m\u00e1me b\u00fdt, m\u016f\u017eeme zadat p\u0159\u00edkaz, kter\u00fd zobraz\u00ed v konzoli v\u0161echny soubory a slo\u017eky, kter\u00e9 tam le\u017e\u00ed<code> ls -a<\/code><\/p>\n<p>Pro spu\u0161t\u011bn\u00ed jsem zadal do konzole <\/p>\n<pre><code class=\"plaintext\">node index.js\n<\/code><\/pre>\n<p>\nPokud nen\u00ed \u017e\u00e1dn\u00e1 chyba \u2014 je v\u0161e v po\u0159\u00e1dku, bot funguje. Hledejte ho na telegramu. Pokud je tam chyba \u2014 aplikujte sv\u00e9 znalosti z 1 bodu.<\/p>\n<p><b>9. Jak spustit bota na pozad\u00ed<\/b><\/p>\n<p>Pom\u011brn\u011b rychle pochop\u00edte, \u017ee bot funguje jen tehdy, kdy\u017e sami sed\u00edte v konzoli. Abych tuto probl\u00e9m vy\u0159e\u0161il, pou\u017eil jsem p\u0159\u00edkaz <\/p>\n<pre><code class=\"plaintext\">screen<\/code><\/pre>\n<p>\nPot\u00e9 se objev\u00ed obrazovka s n\u011bjak\u00fdm textem. To znamen\u00e1, \u017ee v\u0161e je v po\u0159\u00e1dku. Jste na virtu\u00e1ln\u00edm serveru v cloudov\u00e9m serveru. Abyste l\u00e9pe porozum\u011bli, jak to cel\u00e9 funguje \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/bablofil.ru\/kak-zapustit-bota-na-servere\/\">tady je \u010dl\u00e1nek<\/a><\/noindex>. Sta\u010d\u00ed vstoupit do sv\u00e9 slo\u017eky a zadat p\u0159\u00edkaz pro spu\u0161t\u011bn\u00ed bota<\/p>\n<pre><code class=\"plaintext\">node index.js<\/code><\/pre>\n<p>\n<b>10. Jak funguje bot a jak roz\u0161\u00ed\u0159it jeho funkce<\/b><\/p>\n<p>Co v\u0161echno um\u00ed n\u00e1\u0161 bot z p\u0159\u00edkladu? Um\u00ed <\/p>\n<pre><code class=\"plaintext\">bot.start((ctx) =&gt; ctx.reply('Welcome!'))<\/code><\/pre>\n<p>\n\u0159\u00edkat \u201eWelcome!\u201c v moment\u011b startu (zkuste zm\u011bnit text)<\/p>\n<pre><code class=\"plaintext\">bot.help((ctx) =&gt; ctx.reply('Send me a sticker'))<\/code><\/pre>\n<p>\nv odpov\u011bdi na standardn\u00ed p\u0159\u00edkaz \/help poslat zpr\u00e1vu \u201eSend me a sticker\u201c<\/p>\n<pre><code class=\"plaintext\">bot.on('sticker', (ctx) =&gt; ctx.reply(''))<\/code><\/pre>\n<p>\nv odpov\u011bdi na samolepku pos\u00edlat schv\u00e1len\u00ed<\/p>\n<pre><code class=\"plaintext\">bot.hears('hi', (ctx) =&gt; ctx.reply('Hey there'))<\/code><\/pre>\n<p>\nodpov\u011bd\u011bt \u201eAhoj\u201c, kdy\u017e nap\u00ed\u0161e \u201eahoj\u201c<br \/>\nbot.launch()<\/p>\n<p><img decoding=\"async\" alt=\"N\u00e1vod: Jak vytvo\u0159it jednoduch\u00e9ho bota pro Telegram v JS pro za\u010d\u00e1te\u010dn\u00edky v programov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/04\/d2a52f8feb46ff67ee39622c56e8ce8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPokud se pod\u00edv\u00e1te na k\u00f3d na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/b0tank\/bot\/blob\/master\/index.js\">github<\/a><\/noindex>, rychle pochop\u00edte, \u017ee jsem se od t\u00e9to funk\u010dnosti p\u0159\u00edli\u0161 nevzd\u00e1lil. Co se aktivn\u011b pou\u017e\u00edv\u00e1, je funkce <code>ctx.replyWithPhoto<\/code> Ta umo\u017e\u0148uje pos\u00edlat ur\u010den\u00fd obr\u00e1zek nebo gif jako odpov\u011b\u010f na konkr\u00e9tn\u00ed text. <\/p>\n<p>V\u00fdznamn\u00e1 \u010d\u00e1st k\u00f3du byla naps\u00e1na d\u011btmi ve v\u011bku 11-13 let, kter\u00fdm jsem dal p\u0159\u00edstup k botovi. Vlo\u017eili sv\u00e9 u\u017eivatelsk\u00e9 p\u0159\u00edpady. Mysl\u00edm, \u017ee je snadn\u00e9 ur\u010dit, kter\u00e1 \u010d\u00e1st byla vytvo\u0159ena jimi.<\/p>\n<p>Nap\u0159\u00edklad na zpr\u00e1vu \u201ejake\u201c p\u0159ijde gifka s zn\u00e1mou postavou z animovan\u00e9ho seri\u00e1lu Adventure Time. <\/p>\n<p><img decoding=\"async\" alt=\"N\u00e1vod: Jak vytvo\u0159it jednoduch\u00e9ho bota pro Telegram v JS pro za\u010d\u00e1te\u010dn\u00edky v programov\u00e1n\u00ed\" src=\"\/wp-content\/uploads\/2019\/04\/56bdcb4dde80c032c225726b88417fb4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAbych pokra\u010doval ve v\u00fdvoji bota, je pot\u0159eba se pod\u00edvat na p\u0159\u00edklady pro p\u0159ipojen\u00ed kl\u00e1vesnice, nap\u0159\u00edklad <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/telegraf\/telegraf\/tree\/develop\/docs\/examples\">odsud<\/a><\/noindex><\/p>\n<p><b>11. Jak aktualizovat k\u00f3d a restartovat bota<\/b><\/p>\n<p>Nezapome\u0148te, \u017ee je t\u0159eba aktualizovat k\u00f3d nejen na githubu, ale tak\u00e9 na serveru. Je to jednoduch\u00e9 - zastav\u00edme bota (stiskn\u011bte ctrl+c),<\/p>\n<p> \u2014 zad\u00e1me do konzole, kdy\u017e jsme v c\u00edlov\u00e9 slo\u017ece, <code>git pull<\/code><br \/>\n \u2014 znovu spust\u00edme bota p\u0159\u00edkazem <code>node index.js<\/code><\/p>\n<p><b>END<\/b><\/p>\n<p>Mnoho v\u011bc\u00ed popsan\u00fdch v tomto souboru bude pro pokro\u010dil\u00e9 program\u00e1tory super z\u0159ejm\u00e9. Nicm\u00e9n\u011b kdy\u017e jsem se s\u00e1m sna\u017eil najednou p\u0159esko\u010dit propast do sv\u011bta bot\u016f, velmi mi chyb\u011bl takov\u00fd pr\u016fvodce. Pr\u016fvodce, ve kter\u00e9m nejsou vynech\u00e1ny z\u0159ejm\u00e9 a jednoduch\u00e9 v\u011bci pro ka\u017ed\u00e9ho IT specialistu. <\/p>\n<p>V budoucnu pl\u00e1nuji p\u0159\u00edsp\u011bvek o tom, jak vytvo\u0159it svou prvn\u00ed aplikaci v ReactNative ve stejn\u00e9m stylu, sledujte m\u011b!<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/447006\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042f \u043d\u0430\u0447\u0430\u043b \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 \u043c\u0438\u0440 IT \u043b\u0438\u0448\u044c \u0442\u0440\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434. \u0421\u0435\u0440\u044c\u0435\u0437\u043d\u043e, \u0442\u0440\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 HTML, \u0430 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u044f\u0437\u044b\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u043f\u043e Pascal 10-\u043b\u0435\u0442\u043d\u0435\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u044f \u0440\u0435\u0448\u0438\u043b\u0441\u044f \u043f\u043e\u0435\u0445\u0430\u0442\u044c \u0432 IT-\u043b\u0430\u0433\u0435\u0440\u044c, \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043e\u0442\u0430. \u042f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0440\u044f\u0434 \u043b\u0438 \u0442\u0430\u043a \u0441\u043b\u043e\u0436\u043d\u043e. \u0421 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23020,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31044","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042f \u043d\u0430\u0447\u0430\u043b \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 \u043c\u0438\u0440 IT \u043b\u0438\u0448\u044c \u0442\u0440\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434. \u0421\u0435\u0440\u044c\u0435\u0437\u043d\u043e, \u0442\u0440\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 HTML, \u0430 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u044f\u0437\u044b\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u043f\u043e Pascal 10-\u043b\u0435\u0442\u043d\u0435\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e: \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c \u043d\u0430 JS \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042f \u043d\u0430\u0447\u0430\u043b \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 \u043c\u0438\u0440 IT \u043b\u0438\u0448\u044c \u0442\u0440\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434. \u0421\u0435\u0440\u044c\u0435\u0437\u043d\u043e, \u0442\u0440\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 HTML, \u0430 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u044f\u0437\u044b\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u043f\u043e Pascal 10-\u043b\u0435\u0442\u043d\u0435\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:39:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39:05+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Pr\u016fvodce: jak vytvo\u0159it jednoduch\u00e9ho bota pro Telegram v JS pro za\u010d\u00e1te\u010dn\u00edky v programov\u00e1n\u00ed | ProHoster","description":"Za\u010dal jsem se pono\u0159ovat do sv\u011bta IT teprve p\u0159ed t\u0159emi t\u00fddny. Opravu, p\u0159ed t\u0159emi t\u00fddny jsem ani nech\u00e1pal syntaxi HTML, a moje znalosti programovac\u00edch jazyk\u016f kon\u010dily \u0161koln\u00edm programem z Pascalu p\u0159ed deseti lety.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e: \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c \u043d\u0430 JS \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 | ProHoster","og:description":"\u042f \u043d\u0430\u0447\u0430\u043b \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 \u043c\u0438\u0440 IT \u043b\u0438\u0448\u044c \u0442\u0440\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434. \u0421\u0435\u0440\u044c\u0435\u0437\u043d\u043e, \u0442\u0440\u0438 \u043d\u0435\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u0430\u0434 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 HTML, \u0430 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u044f\u0437\u044b\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u043f\u043e Pascal 10-\u043b\u0435\u0442\u043d\u0435\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:39:05+00:00","article:modified_time":"2019-10-31T18:39:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31044","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 04:16:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:23:43","updated":"2026-01-21 04:16:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/31044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=31044"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/31044\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/23020"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=31044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=31044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=31044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}