{"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\/pl\/blog\/administrirovanie\/rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii","title":{"rendered":"Poradnik: jak stworzy\u0107 prostego bota do Telegrama na JS dla pocz\u0105tkuj\u0105cego programisty","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Zacz\u0105\u0142em zanurza\u0107 si\u0119 w \u015bwiat IT zaledwie trzy tygodnie temu. Naprawd\u0119, trzy tygodnie temu nawet nie rozumia\u0142em sk\u0142adni HTML, a moja znajomo\u015b\u0107 j\u0119zyk\u00f3w programowania ogranicza\u0142a si\u0119 do szkolnego programu z Pascalem sprzed 10 lat. Postanowi\u0142em jednak pojecha\u0107 na oboz IT, gdzie dla dzieci by\u0142o by fajnie zrobi\u0107 bota. Uzna\u0142em, \u017ce to raczej nie jest tak trudne.<\/p>\n<p>Od tego zacz\u0119\u0142a si\u0119 d\u0142uga droga, w ramach kt\u00f3rej ja:<\/p>\n<ul>\n<li>uruchomi\u0142em serwer chmurowy z Ubuntu,<\/li>\n<li>zarejestrowa\u0142em si\u0119 na GitHubie,<\/li>\n<li>nauczy\u0142em si\u0119 podstawowej sk\u0142adni JavaScriptu,<\/li>\n<li>przeczyta\u0142em mas\u0119 artyku\u0142\u00f3w w j\u0119zyku angielskim i rosyjskim,<\/li>\n<li>w ko\u0144cu stworzy\u0142em bota,<\/li>\n<li>napisa\u0142em w ko\u0144cu ten artyku\u0142.<\/li>\n<\/ul>\n<p>\nOstateczny wynik wygl\u0105da\u0142 mniej wi\u0119cej tak:<\/p>\n<p><img decoding=\"async\" alt=\"Poradnik: jak stworzy\u0107 prostego bota do Telegrama na JS dla pocz\u0105tkuj\u0105cego programisty\" 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 \/>\nPowiem od razu, \u017ce to artyku\u0142 dla pocz\u0105tkuj\u0105cych \u2013 aby po prostu zrozumie\u0107, jak robi\u0107 podstawowe rzeczy od samego pocz\u0105tku.<\/p>\n<p>A ponadto \u2013 dla zaawansowanych programist\u00f3w \u2013 aby ich troch\u0119 rozbawi\u0107. <\/p>\n<p><b>1. Jak pisa\u0107 kod w JS?<\/b><\/p>\n<p>Rozumia\u0142em, \u017ce warto na pocz\u0105tku przynajmniej ogarn\u0105\u0107 sk\u0142adni\u0119 j\u0119zyka. Wyb\u00f3r pad\u0142 na JavaScript, po prostu dlatego, \u017ce kolejnym krokiem dla mnie by\u0142o stworzenie aplikacji w ReactNative. Zacz\u0105\u0142em od <noindex><a rel=\"nofollow\" href=\"https:\/\/www.codecademy.com\/learn\/introduction-to-javascript\">kursu<\/a><\/noindex> na Codecademy i by\u0142em bardzo zachwycony. Pierwsze 7 dni za darmo. Prawdziwe projekty. Polecam. Uko\u0144czenie go zaj\u0119\u0142o mi oko\u0142o 25 godzin. W rzeczywisto\u015bci nie wszystko z niego mi si\u0119 przyda\u0142o. Tak mniej wi\u0119cej wygl\u0105da struktura kursu oraz szczeg\u00f3\u0142owo pierwszy blok.<\/p>\n<p><img decoding=\"async\" alt=\"Poradnik: jak stworzy\u0107 prostego bota do Telegrama na JS dla pocz\u0105tkuj\u0105cego programisty\" src=\"\/wp-content\/uploads\/2019\/04\/e63be1e6c7f32cc3c929e0145996d569.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>2. Jak zarejestrowa\u0107 bota?<\/b><\/p>\n<p>Na pocz\u0105tku bardzo pomog\u0142a mi ta <noindex><a rel=\"nofollow\" href=\"https:\/\/archakov.im\/post\/telegram-bot-on-nodejs.html\">artyku\u0142<\/a><\/noindex> z bloga pewnego Arczakowa. Rozwija podstawy. Ale najwa\u017cniejsze, co tam jest \u2013 to instrukcja rejestracji bota. Lepiej nie napisz\u0119, a poniewa\u017c to naj\u0142atwiejsza cz\u0119\u015b\u0107, po prostu opisz\u0119 sedno. Nale\u017cy stworzy\u0107 bota i uzyska\u0107 jego API. To si\u0119 robi przez innego bota \u2013 @BotFather. Znajd\u017a go w telegramie, napisz do niego, przejd\u017a prost\u0105 drog\u0119 i zdob\u0105d\u017a (zapami\u0119taj!) klucz API (to zbi\u00f3r cyfr i liter). Przyda\u0142 mi si\u0119 p\u00f3\u017aniej.<\/p>\n<p><img decoding=\"async\" alt=\"Poradnik: jak stworzy\u0107 prostego bota do Telegrama na JS dla pocz\u0105tkuj\u0105cego programisty\" src=\"\/wp-content\/uploads\/2019\/04\/b8181f6ad1c67dd47dd337f8171bf941.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>3. Jak wygl\u0105da kod bota?<\/b><\/p>\n<p>Po d\u0142ugim studiowaniu artyku\u0142\u00f3w, zrozumia\u0142em, \u017ce warto u\u017cy\u0107 jakiej\u015b biblioteki (zewn\u0119trznego kodu w formacie modu\u0142u), aby nie m\u0119czy\u0107 si\u0119 z nauk\u0105 API telegramu i tworzeniem od zera du\u017cych kawa\u0142k\u00f3w kodu. Znalaz\u0142em framework <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/telegraf\/telegraf\">telegraf<\/a><\/noindex>, kt\u00f3ry musia\u0142 by\u0107 jako\u015b pod\u0142\u0105czony do czego\u015b przez npm lub yarn. Tak mniej wi\u0119cej rozumia\u0142em wtedy, z czego sk\u0142ada si\u0119 wdro\u017cenie bota. Mo\u017cesz si\u0119 z tego \u015bmia\u0107. Nie obra\u017c\u0119 si\u0119. Najbardziej pomog\u0142y mi p\u00f3\u017aniej przyk\u0142ady podane na dole strony:<\/p>\n<p><img decoding=\"async\" alt=\"Poradnik: jak stworzy\u0107 prostego bota do Telegrama na JS dla pocz\u0105tkuj\u0105cego programisty\" src=\"\/wp-content\/uploads\/2019\/04\/711b252c5118b47a14c52862dd869058.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>3. Jak stworzy\u0107 w\u0142asny serwer chmurowy za 100 z\u0142<\/b><\/p>\n<p>Po d\u0142ugich poszukiwaniach zrozumia\u0142em, \u017ce komenda 'npm' z powy\u017cszego obrazka odnosi si\u0119 do wiersza polece\u0144. Wiersz polece\u0144 jest wsz\u0119dzie, ale aby go uruchomi\u0107, musisz zainstalowa\u0107 Node Package Manager. Problem polega\u0142 na tym, \u017ce programowa\u0142em na PixelBooku z ChromeOS. Pomi\u0144my tutaj d\u0142ugi fragment dotycz\u0105cy mojego poznawania systemu Linux \u2014 dla wi\u0119kszo\u015bci to puste i zb\u0119dne. Je\u015bli masz Windows lub MacBooka, masz ju\u017c konsol\u0119. <\/p>\n<p>W skr\u00f3cie, zainstalowa\u0142em Linuxa przez Crostini. <\/p>\n<p>Jednak w trakcie zrozumia\u0142em, \u017ce do ci\u0105g\u0142ej pracy bota (a nie tylko wtedy, gdy mam w\u0142\u0105czony komputer) potrzebny jest mi serwer chmurowy. Wybra\u0142em <noindex><a rel=\"nofollow\" href=\"http:\/\/vscale.io\">vscale.io<\/a><\/noindex> Wp\u0142aci\u0142em 100 z\u0142, kupi\u0142em najta\u0144szy serwer Ubuntu (zobacz obrazek). <\/p>\n<p><img decoding=\"async\" alt=\"Poradnik: jak stworzy\u0107 prostego bota do Telegrama na JS dla pocz\u0105tkuj\u0105cego programisty\" src=\"\/wp-content\/uploads\/2019\/04\/74cdc3858900bbd0d95715f5371ef52a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>4. Jak przygotowa\u0107 serwer do uruchomienia bota<\/b><\/p>\n<p>Po tym zrozumia\u0142em, \u017ce musz\u0119 utworzy\u0107 na serwerze jak\u0105\u015b folder, do kt\u00f3rego wrzuc\u0119 plik z kodem. W tym celu w konsoli (uruchamiaj bezpo\u015brednio na stronie przez przycisk \u201eOtw\u00f3rz konsol\u0119\u201d) wpisa\u0142em <\/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>\nZalecam na tym etapie skonfigurowanie po\u0142\u0105czenia z serwerem przez swoj\u0105 konsol\u0119. Oto jak to zrobi\u0107: <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\">instrukcja<\/a><\/noindex> To pozwoli na bezpo\u015bredni\u0105 prac\u0119 z serwerem z konsoli swojego komputera.<\/p>\n<p><b>5. Jak napisa\u0107 kod pierwszego bota.<\/b><\/p>\n<p>A teraz prawdziwe odkrycie dla mnie. Ka\u017cdy program to po prostu ci\u0105gi tekstu. Mo\u017cna je wpisa\u0107 gdziekolwiek, zapisa\u0107 pod odpowiednim rozszerzeniem i gotowe. Jeste\u015b wspania\u0142y. U\u017cy\u0142em <noindex><a rel=\"nofollow\" href=\"https:\/\/atom.io\/\">Atom<\/a><\/noindex>, ale tak naprawd\u0119 mo\u017cna po prostu pisa\u0107 w zwyk\u0142ym notatniku. Najwa\u017cniejsze \u2014 pami\u0119taj, by p\u00f3\u017aniej zapisa\u0107 plik w odpowiednim rozszerzeniu. To jak napisanie tekstu w Wordzie i jego zapisanie. <\/p>\n<p>Utworzy\u0142em nowy plik, do kt\u00f3rego wklei\u0142em kod z przyk\u0142adu na stronie telegraf i zapisa\u0142em go jako index.js (w sumie nie trzeba nazywa\u0107 pliku w ten spos\u00f3b, ale tak jest w zwyczaju). Wa\u017cne \u2014 zamiast BOT_TOKEN wstaw sw\u00f3j klucz API z drugiego punktu.<\/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('Witaj!'))\nbot.help((ctx) =&gt; ctx.reply('Wy\u015blij mi naklejk\u0119'))\nbot.on('sticker', (ctx) =&gt; ctx.reply(''))\nbot.hears('hi', (ctx) =&gt; ctx.reply('Cze\u015b\u0107'))\nbot.launch()<\/code><\/pre>\n<p>\n<b>6. Jak wgra\u0107 kod na serwer przez github<\/b><\/p>\n<p>Teraz musia\u0142em w jaki\u015b spos\u00f3b wrzuci\u0107 ten kod na serwer i go uruchomi\u0107. Dla mnie by\u0142 to prawdziwy challenge. Ostatecznie, po wielu zmaganiach, zrozumia\u0142em, \u017ce najpro\u015bciej b\u0119dzie stworzy\u0107 plik na githubie, kt\u00f3ry pozwoli na aktualizacj\u0119 kodu za pomoc\u0105 polecenia w konsoli. Zarejestrowa\u0142em konto na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/\">github<\/a><\/noindex> i zrobi\u0142em <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/b0tank\/bot\">nowy projekt<\/a><\/noindex>, gdzie wrzuci\u0142em plik. Nast\u0119pnie musia\u0142em zrozumie\u0107, jak skonfigurowa\u0107 przesy\u0142anie plik\u00f3w z mojego konta (publicznego!) na serwer do folderu bot (je\u015bli przypadkiem z niego wyszed\u0142e\u015b \u2014 wystarczy wpisa\u0107 cd bot).<\/p>\n<p><b>7. Jak przes\u0142a\u0107 pliki na serwer przez github cz.2<\/b><\/p>\n<p>Musia\u0142em zainstalowa\u0107 na serwerze program, kt\u00f3ry b\u0119dzie pobiera\u0142 pliki z git. Zainstalowa\u0142em git na serwerze, wpisuj\u0105c w konsol\u0119 <\/p>\n<pre><code class=\"plaintext\">apt-get install git<\/code><\/pre>\n<p>\nNast\u0119pnie musia\u0142em skonfigurowa\u0107 przesy\u0142anie plik\u00f3w. W tym celu wpisa\u0142em w wierszu polece\u0144 <\/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>Postanowi\u0142em zignorowa\u0107 ten problem.<\/p>\n<p>Aby doda\u0107 bibliotek\u0119 telegraf, kt\u00f3r\u0105 \u017c\u0105dali\u015bmy w pierwszej linii kodu, wpisz w konsol\u0119 polecenie.<\/p>\n<pre><code class=\"plaintext\">npm install telegraf<\/code><\/pre>\n<p>\n<b>8. Jak uruchomi\u0107 bota<\/b><\/p>\n<p>Aby to zrobi\u0107, b\u0119d\u0105c w folderze z plikiem (aby przechodzi\u0107 mi\u0119dzy folderami w konsoli \u2014 wykonuj polecenie w formacie <code>cd bot<\/code> Aby upewni\u0107 si\u0119, \u017ce jeste\u015b w odpowiednim miejscu, mo\u017cesz wpisa\u0107 polecenie, kt\u00f3re wy\u015bwietli w konsoli wszystkie pliki i foldery, kt\u00f3re tam s\u0105<code> ls -a<\/code><\/p>\n<p>Aby uruchomi\u0107, wpisa\u0142em w konsol\u0119 <\/p>\n<pre><code class=\"plaintext\">node index.js\n<\/code><\/pre>\n<p>\nJe\u015bli nie ma \u017cadnych b\u0142\u0119d\u00f3w \u2014 wszystko jest w porz\u0105dku, bot dzia\u0142a. Szukaj go w Telegramie. Je\u015bli jest b\u0142\u0105d \u2014 wykorzystaj wiedz\u0119 z punktu 1.<\/p>\n<p><b>9. Jak uruchomi\u0107 bota w tle<\/b><\/p>\n<p>Szybko zrozumiesz, \u017ce bot dzia\u0142a tylko wtedy, gdy sam siedzisz w konsoli. Aby rozwi\u0105za\u0107 ten problem, u\u017cy\u0142em polecenia <\/p>\n<pre><code class=\"plaintext\">screen<\/code><\/pre>\n<p>\nPo tym pojawi si\u0119 ekran z jakim\u015b tekstem. To znaczy, \u017ce wszystko jest w porz\u0105dku. Jeste\u015b na wirtualnym serwerze w chmurze. Aby lepiej zrozumie\u0107, jak to wszystko dzia\u0142a \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/bablofil.ru\/kak-zapustit-bota-na-servere\/\">oto artyku\u0142<\/a><\/noindex>. Po prostu wejd\u017a do swojego folderu i wpisuj polecenie do uruchomienia bota<\/p>\n<pre><code class=\"plaintext\">node index.js<\/code><\/pre>\n<p>\n<b>10. Jak dzia\u0142a bot i jak rozszerzy\u0107 jego funkcjonalno\u015b\u0107<\/b><\/p>\n<p>Co nasz bot z przyk\u0142adu potrafi? Potrafi <\/p>\n<pre><code class=\"plaintext\">bot.start((ctx) =&gt; ctx.reply('Welcome!'))<\/code><\/pre>\n<p>\npowiedzie\u0107 \u201eWelcome!\u201d w momencie startu (spr\u00f3buj zmieni\u0107 tekst)<\/p>\n<pre><code class=\"plaintext\">bot.help((ctx) =&gt; ctx.reply('Send me a sticker'))<\/code><\/pre>\n<p>\nw odpowiedzi na standardowe polecenie \/help wys\u0142a\u0107 wiadomo\u015b\u0107 \u201eSend me a sticker\u201d<\/p>\n<pre><code class=\"plaintext\">bot.on('sticker', (ctx) =&gt; ctx.reply(''))<\/code><\/pre>\n<p>\nw odpowiedzi na naklejk\u0119 wys\u0142a\u0107 aprobat\u0119<\/p>\n<pre><code class=\"plaintext\">bot.hears('hi', (ctx) =&gt; ctx.reply('Hey there'))<\/code><\/pre>\n<p>\nodpowiada\u0107 \u201eCze\u015b\u0107\u201d, gdy kto\u015b pisze 'hi'<br \/>\nbot.launch()<\/p>\n<p><img decoding=\"async\" alt=\"Poradnik: jak stworzy\u0107 prostego bota do Telegrama na JS dla pocz\u0105tkuj\u0105cego programisty\" src=\"\/wp-content\/uploads\/2019\/04\/d2a52f8feb46ff67ee39622c56e8ce8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe\u015bli spojrzysz na kod na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/b0tank\/bot\/blob\/master\/index.js\">github<\/a><\/noindex>, to szybko zrozumiecie, \u017ce znacznie si\u0119 od tej funkcjonalno\u015bci nie oddali\u0142em. To, co jest aktywnie u\u017cywane, to funkcja <code>ctx.replyWithPhoto<\/code> Pozwala ona na wysy\u0142anie okre\u015blonego zdj\u0119cia lub gif-a w odpowiedzi na okre\u015blony tekst. <\/p>\n<p>Znacz\u0105ca cz\u0119\u015b\u0107 kodu zosta\u0142a napisana przez dzieci w wieku 11-13 lat, kt\u00f3rym da\u0142em dost\u0119p do bota. Wprowadzi\u0142y swoje przypadki u\u017cycia. My\u015bl\u0119, \u017ce \u0142atwo mo\u017cna okre\u015bli\u0107, kt\u00f3ra cz\u0119\u015b\u0107 zosta\u0142a stworzona przez nie.<\/p>\n<p>Na przyk\u0142ad, na wiadomo\u015b\u0107 \u201ejake\u201d przychodzi gif z znanym bohaterem z kresk\u00f3wki Adventure Time. <\/p>\n<p><img decoding=\"async\" alt=\"Poradnik: jak stworzy\u0107 prostego bota do Telegrama na JS dla pocz\u0105tkuj\u0105cego programisty\" src=\"\/wp-content\/uploads\/2019\/04\/56bdcb4dde80c032c225726b88417fb4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAby rozwija\u0107 bota dalej, nale\u017cy pod\u0142\u0105czy\u0107 klawiatur\u0119, trzeba si\u0119 przyjrze\u0107 przyk\u0142adom, na przyk\u0142ad, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/telegraf\/telegraf\/tree\/develop\/docs\/examples\">st\u0105d<\/a><\/noindex><\/p>\n<p><b>11. Jak aktualizowa\u0107 kod i ponownie uruchamia\u0107 bota<\/b><\/p>\n<p>Nie zapominajcie, \u017ce trzeba aktualizowa\u0107 kod nie tylko na githubie, ale tak\u017ce na serwerze. Robi si\u0119 to prosto \u2014 zatrzymujemy bota (naciskamy ctrl+c),<\/p>\n<p> \u2014 wpisujemy w konsoli, b\u0119d\u0105c w docelowym katalogu, <code>git pull<\/code><br \/>\n \u2014 ponownie uruchamiamy bota komend\u0105 <code>node index.js<\/code><\/p>\n<p><b>KONIEC<\/b><\/p>\n<p>Wiele rzeczy opisywanych w tym pliku b\u0119dzie super oczywiste dla zaawansowanych programist\u00f3w. Jednak gdy sam pr\u00f3bowa\u0142em jednym skokiem przeskoczy\u0107 przepa\u015b\u0107 do \u015bwiata bot\u00f3w, bardzo brakowa\u0142o mi takiego przewodnika. Przewodnika, w kt\u00f3rym nie pomijane s\u0105 oczywiste i proste rzeczy dla ka\u017cdego specjalisty IT. <\/p>\n<p>W przysz\u0142o\u015bci planuj\u0119 post na temat tego, jak stworzy\u0107 swoj\u0105 pierwsz\u0105 aplikacj\u0119 w ReactNative w takim samym stylu, subskrybujcie!<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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.1.1 - 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\/pl\/blog\/administrirovanie\/rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\udd47Poradnik: jak stworzy\u0107 prostego bota dla Telegramu w JS dla nowicjusza w programowaniu | ProHoster","description":"Zaczyna\u0142em swoj\u0105 przygod\u0119 z IT zaledwie trzy tygodnie temu. Powa\u017cnie, trzy tygodnie temu nawet nie rozumia\u0142em sk\u0142adni HTML, a zapoznanie si\u0119 z j\u0119zykami programowania ko\u0144czy\u0142o si\u0119 szkolnym programem z Pascala sprzed 10 lat.","canonical_url":"https:\/\/prohoster.info\/pl\/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":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/31044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=31044"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/31044\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/23020"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=31044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=31044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=31044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}