{"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\/ro\/blog\/administrirovanie\/rukovodstvo-kak-sdelat-prostogo-bota-dlya-telegram-na-js-dlya-novichka-v-programmirovanii","title":{"rendered":"Ghid: cum s\u0103 faci un bot simplu pentru Telegram \u00een JS pentru \u00eencep\u0103tori \u00een programare","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Am \u00eenceput s\u0103 m\u0103 aprofundeze \u00een lumea IT-ului acum doar trei s\u0103pt\u0103m\u00e2ni. Serios, acum trei s\u0103pt\u0103m\u00e2ni nu \u00een\u021belegeam nici m\u0103car sintaxa HTML, iar cunoa\u0219terea limbajelor de programare se oprea la programul \u0219colar din Pascal de acum zece ani. Cu toate acestea, am decis s\u0103 merg \u00eentr-o tab\u0103r\u0103 IT, unde ar fi bine pentru copii s\u0103 creeze un bot. Am considerat c\u0103 nu ar fi at\u00e2t de complicat.<\/p>\n<p>Aceasta a fost \u00eenceputul unui drum lung, \u00een cadrul c\u0103ruia am:<\/p>\n<ul>\n<li>configurat un server cloud cu Ubuntu,<\/li>\n<li>m-am \u00eenregistrat pe GitHub,<\/li>\n<li>am \u00eenv\u0103\u021bat sintaxa de baz\u0103 a JavaScript-ului,<\/li>\n<li>am citit o ton\u0103 de articole \u00een englez\u0103 \u0219i rus\u0103,<\/li>\n<li>\u00een cele din urm\u0103 am f\u0103cut un bot,<\/li>\n<li>am scris \u00een sf\u00e2r\u0219it acest articol.<\/li>\n<\/ul>\n<p>\nRezultatul final ar\u0103ta cam a\u0219a:<\/p>\n<p><img decoding=\"async\" alt=\"Ghid: cum s\u0103 faci un bot simplu pentru Telegram \u00een JS pentru \u00eencep\u0103tori \u00een programare\" 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 \/>\nVoi spune din start, acesta este un articol pentru \u00eencep\u0103tori \u2014 doar pentru a \u00een\u021belege cum se fac lucruri elementare de la zero.<\/p>\n<p>\u0218i, de asemenea, pentru programatorii avansa\u021bi \u2014 doar pentru a-i amuza pu\u021bin. <\/p>\n<p><b>1. Cum scrii cod \u00een JS?<\/b><\/p>\n<p>\u0218tiam c\u0103 ar trebui s\u0103 \u00eencep prin a \u00een\u021belege m\u0103car sintaxa limbajului. Alegerea a c\u0103zut pe JavaScript, pur \u0219i simplu pentru c\u0103 urm\u0103torul pas pentru mine era crearea unei aplica\u021bii pe ReactNative. Am \u00eenceput cu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.codecademy.com\/learn\/introduction-to-javascript\">cursului<\/a><\/noindex> Codecademy \u0219i am fost extrem de \u00eenc\u00e2ntat. Primele 7 zile sunt gratuite. Proiecte reale. Recomand. Trecerea prin el a durat aproximativ 25 de ore. \u00cen realitate, nu toate lucrurile din el mi-au fost utile. Cam a\u0219a arat\u0103 structura cursului \u0219i detaliile primei p\u0103r\u021bi.<\/p>\n<p><img decoding=\"async\" alt=\"Ghid: cum s\u0103 faci un bot simplu pentru Telegram \u00een JS pentru \u00eencep\u0103tori \u00een programare\" src=\"\/wp-content\/uploads\/2019\/04\/e63be1e6c7f32cc3c929e0145996d569.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>2. Cum \u00eenregistrezi un bot?<\/b><\/p>\n<p>La \u00eenceput, mi-a fost de mare ajutor acest <noindex><a rel=\"nofollow\" href=\"https:\/\/archakov.im\/post\/telegram-bot-on-nodejs.html\">acest articol<\/a><\/noindex> blog al lui Archakov. El explic\u0103 \u00eenceputurile. Dar cel mai important, are o instruc\u021biune pentru \u00eenregistrarea botului. Nu voi scrie mai bine, \u0219i deoarece aceasta este cea mai u\u0219oar\u0103 parte, voi rezuma esen\u021ba. Trebuie s\u0103 creezi un bot \u0219i s\u0103 ob\u021bii API-ul s\u0103u. Acest lucru se face printr-un alt bot \u2014 @BotFather. G\u0103se\u0219te-l \u00een telegram, scrie-i, parcurge procesul simplu \u0219i ob\u021bine (salveaz\u0103!) cheia API (aceasta este un set de cifre \u0219i litere). Mi-a fost de folos mai t\u00e2rziu.<\/p>\n<p><img decoding=\"async\" alt=\"Ghid: cum s\u0103 faci un bot simplu pentru Telegram \u00een JS pentru \u00eencep\u0103tori \u00een programare\" src=\"\/wp-content\/uploads\/2019\/04\/b8181f6ad1c67dd47dd337f8171bf941.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>3. Cum arat\u0103 codul botului?<\/b><\/p>\n<p>Dup\u0103 o lung\u0103 studiere a articolelor, am realizat c\u0103 ar trebui s\u0103 folosesc o bibliotec\u0103 (cod extern \u00een format de modul) pentru a nu m\u0103 chinui cu studiul API-ului Telegram \u0219i cu crearea de la zero a unor buc\u0103\u021bi mari de cod. Am g\u0103sit framework-ul <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/telegraf\/telegraf\">telegraf<\/a><\/noindex>, pe care trebuia s\u0103-l conectez cumva la ceva folosind npm sau yarn. A\u0219a \u00een\u021belegeam atunci din ce consta desf\u0103\u0219urarea botului. R\u00e2de\u021bi aici. Nu m\u0103 voi sup\u0103ra. Cel mai mult \u00een timpul cre\u0103rii ulterioare a botului m-au ajutat exemplele men\u021bionate la sf\u00e2r\u0219itul paginii:<\/p>\n<p><img decoding=\"async\" alt=\"Ghid: cum s\u0103 faci un bot simplu pentru Telegram \u00een JS pentru \u00eencep\u0103tori \u00een programare\" src=\"\/wp-content\/uploads\/2019\/04\/711b252c5118b47a14c52862dd869058.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>3. Cum s\u0103 \u00ee\u021bi creezi propriul server cloud cu 100 de ruble<\/b><\/p>\n<p>Dup\u0103 lungi c\u0103ut\u0103ri, am realizat c\u0103 comanda 'npm' din imaginea de mai sus se refer\u0103 la linia de comand\u0103. Linia de comand\u0103 este disponibil\u0103 peste tot, dar pentru a o folosi, trebuie s\u0103 instalezi NodePackageManager. Problema a fost c\u0103 programam pe PixelBook cu ChromeOS. O s\u0103 sar peste o mare parte despre cum am \u00eenv\u0103\u021bat Linux \u2013 pentru majoritate, aceasta ar fi inutil\u0103 \u0219i f\u0103r\u0103 rost. Dac\u0103 ave\u021bi Windows sau MacBook, ave\u021bi deja consol\u0103. <\/p>\n<p>Dac\u0103 ar fi s\u0103 spun \u00een dou\u0103 cuvinte, am instalat Linux prin Crostini. <\/p>\n<p>Cu toate acestea, \u00een proces am realizat c\u0103 pentru a avea botul activ permanent (nu doar c\u00e2nd calculatorul meu este pornit) am nevoie de un server cloud. Am ales <noindex><a rel=\"nofollow\" href=\"http:\/\/vscale.io\">vscale.io<\/a><\/noindex> Am investit 100 de ruble \u0219i am cump\u0103rat cel mai ieftin server Ubuntu (vezi imaginea). <\/p>\n<p><img decoding=\"async\" alt=\"Ghid: cum s\u0103 faci un bot simplu pentru Telegram \u00een JS pentru \u00eencep\u0103tori \u00een programare\" src=\"\/wp-content\/uploads\/2019\/04\/74cdc3858900bbd0d95715f5371ef52a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>4. Cum s\u0103 preg\u0103te\u0219ti serverul pentru a rula botul<\/b><\/p>\n<p>Dup\u0103 aceea, am realizat c\u0103 trebuie s\u0103 creez pe server o anumit\u0103 map\u0103 \u00een care voi plasa fi\u0219ierul cu codul surs\u0103. Pentru aceasta, \u00een consol\u0103 (o po\u021bi deschide direct pe site ap\u0103s\u00e2nd pe butonul \u201eDeschide consola\u201d) am tastat <\/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>\n\u00ce\u021bi recomand cu t\u0103rie s\u0103 configurezi conectarea la server prin consola ta. Iat\u0103 <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\">instruc\u021biunea<\/a><\/noindex> Aceasta va permite s\u0103 lucrezi direct cu serverul prin consola calculatorului t\u0103u.<\/p>\n<p><b>5. Cum s\u0103 scrii codul primului bot.<\/b><\/p>\n<p>Iat\u0103 acum deschiderea mea. Orice program este pur \u0219i simplu linii de text. Po\u021bi s\u0103 le tasezi oriunde, s\u0103 le salvezi cu extensia dorit\u0103 \u0219i gata. E\u0219ti minunat. Am folosit <noindex><a rel=\"nofollow\" href=\"https:\/\/atom.io\/\">Atom<\/a><\/noindex>, dar, de fapt, po\u021bi s\u0103 scrii pur \u0219i simplu \u00een Notepad-ul standard. Principalul este s\u0103 salvezi fi\u0219ierul cu extensia corespunz\u0103toare. Este ca \u0219i cum ai scrie un text \u00een Word \u0219i l-ai salva. <\/p>\n<p>Am creat un fi\u0219ier nou, \u00een care am inserat codul din exemplul de pe pagina telegraf \u0219i l-am salvat \u00een fi\u0219ierul index.js (nu este deloc obligatoriu s\u0103 \u00eei dai acest nume, dar a\u0219a se obi\u0219nuie\u0219te). Important \u2014 \u00een loc de BOT_TOKEN, introdu API-key-ul t\u0103u din punctul doi.<\/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('Bun venit!'))\nbot.help((ctx) =&gt; ctx.reply('Trimite-mi un sticker'))\nbot.on('sticker', (ctx) =&gt; ctx.reply(''))\nbot.hears('hi', (ctx) =&gt; ctx.reply('Salut!'))\nbot.launch()<\/code><\/pre>\n<p>\n<b>6. Cum s\u0103 \u00eencarci codul pe server prin github<\/b><\/p>\n<p>Acum trebuia s\u0103 \u00eencarc acest cod pe server \u0219i s\u0103-l rulez. A devenit o provocare pentru mine. \u00cen cele din urm\u0103, dup\u0103 multe \u00eencerc\u0103ri, am realizat c\u0103 cel mai simplu va fi s\u0103 creez un fi\u0219ier pe github, care permite actualizarea codului printr-o comand\u0103 \u00een consol\u0103. Mi-am creat un cont pe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/\">github<\/a><\/noindex> \u0219i am f\u0103cut <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/b0tank\/bot\">proiect nou<\/a><\/noindex>, unde am \u00eenc\u0103rcat fi\u0219ierul. Dup\u0103 aceea, trebuia s\u0103 \u00een\u021beleg cum s\u0103 configurez \u00eenc\u0103rcarea fi\u0219ierelor de pe contul meu (deschis!) pe server \u00een dosarul bot (dac\u0103, cumva, a\u021bi ie\u0219it din el \u2014 pur \u0219i simplu scrie\u021bi cd bot).<\/p>\n<p><b>7. Cum s\u0103 \u00eencarci fi\u0219iere pe server prin github partea 2<\/b><\/p>\n<p>Trebuia s\u0103 instalez pe server un program care va desc\u0103rca fi\u0219iere de pe git. Am instalat git pe server, tast\u00e2nd \u00een consol\u0103 <\/p>\n<pre><code class=\"plaintext\">apt-get install git<\/code><\/pre>\n<p>\nDup\u0103 aceea, trebuia s\u0103 configurez \u00eenc\u0103rcarea fi\u0219ierelor. Pentru aceasta am tastat \u00een linia de comand\u0103 <\/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>Am decis s\u0103 ignor aceast\u0103 problem\u0103.<\/p>\n<p>\u0218i pentru a \u00eenc\u0103rca biblioteca telegraf, pe care o cerem \u00een prima linie de cod, tasta\u021bi \u00een consol\u0103 comanda.<\/p>\n<pre><code class=\"plaintext\">npm install telegraf<\/code><\/pre>\n<p>\n<b>8. Cum s\u0103 porne\u0219ti botul<\/b><\/p>\n<p>Pentru aceasta, afl\u00e2ndu-v\u0103 \u00een dosarul cu fi\u0219ierul (pentru a naviga \u00eentre dosare prin consol\u0103 \u2014 executa\u021bi comanda de forma <code>cd bot<\/code> Pentru a v\u0103 asigura c\u0103 sunte\u021bi acolo unde trebuie, pute\u021bi tasta o comand\u0103 care va afi\u0219a \u00een consol\u0103 toate fi\u0219ierele \u0219i dosarele care se afl\u0103 acolo.<code> ls -a<\/code><\/p>\n<p>Pentru a-l porni, am tastat \u00een consol\u0103 <\/p>\n<pre><code class=\"plaintext\">node index.js\n<\/code><\/pre>\n<p>\nDac\u0103 nu exist\u0103 nici o eroare \u2014 totul este bine, botul func\u021bioneaz\u0103. C\u0103uta\u021bi-l \u00een telegram. Dac\u0103 exist\u0103 o eroare \u2014 folosi\u021bi cuno\u0219tin\u021bele dumneavoastr\u0103 din punctul 1.<\/p>\n<p><b>9. Cum s\u0103 porne\u0219ti botul \u00een fundal<\/b><\/p>\n<p>Ve\u021bi \u00een\u021belege destul de repede c\u0103 botul func\u021bioneaz\u0103 doar c\u00e2nd sunte\u021bi \u00een consol\u0103. Pentru a rezolva aceast\u0103 problem\u0103, am folosit comanda <\/p>\n<pre><code class=\"plaintext\">screen<\/code><\/pre>\n<p>\nDup\u0103 aceasta, va ap\u0103rea un ecran cu un text oarecare. Asta \u00eenseamn\u0103 c\u0103 totul este bine. Sunte\u021bi pe un server virtual pe un server cloud. Pentru a \u00een\u021belege mai bine cum func\u021bioneaz\u0103 totul \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/bablofil.ru\/kak-zapustit-bota-na-servere\/\">iat\u0103 un articol<\/a><\/noindex>. Pur \u0219i simplu intra\u021bi \u00een dosarul dumneavoastr\u0103 \u0219i tasta\u021bi comanda pentru a porni botul.<\/p>\n<pre><code class=\"plaintext\">node index.js<\/code><\/pre>\n<p>\n<b>10. Cum func\u021bioneaz\u0103 botul \u0219i cum s\u0103-i extinzi func\u021bionalitatea<\/b><\/p>\n<p>Ce poate face botul nostru din exemplu? Acesta poate <\/p>\n<pre><code class=\"plaintext\">bot.start((ctx) =&gt; ctx.reply('Welcome!'))<\/code><\/pre>\n<p>\ns\u0103 spun\u0103 \u201eWelcome!\u201d \u00een momentul startului (\u00eencerca\u021bi s\u0103 schimba\u021bi textul).<\/p>\n<pre><code class=\"plaintext\">bot.help((ctx) =&gt; ctx.reply('Send me a sticker'))<\/code><\/pre>\n<p>\n\u00een r\u0103spuns la comanda standard \/help s\u0103 trimit\u0103 mesajul \u201eSend me a sticker\u201d.<\/p>\n<pre><code class=\"plaintext\">bot.on('sticker', (ctx) =&gt; ctx.reply(''))<\/code><\/pre>\n<p>\n\u00een r\u0103spuns la un sticker s\u0103 trimit\u0103 un mesaj de aprobat.<\/p>\n<pre><code class=\"plaintext\">bot.hears('hi', (ctx) =&gt; ctx.reply('Hey there'))<\/code><\/pre>\n<p>\ns\u0103 r\u0103spund\u0103 \u201eHey there\u201d, dac\u0103 cineva \u00eei scrie \u201ehi\u201d<br \/>\nbot.launch()<\/p>\n<p><img decoding=\"async\" alt=\"Ghid: cum s\u0103 faci un bot simplu pentru Telegram \u00een JS pentru \u00eencep\u0103tori \u00een programare\" src=\"\/wp-content\/uploads\/2019\/04\/d2a52f8feb46ff67ee39622c56e8ce8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDac\u0103 v\u0103 uita\u021bi la cod pe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/b0tank\/bot\/blob\/master\/index.js\">github<\/a><\/noindex>, ve\u021bi realiza rapid c\u0103 nu am mers foarte departe de aceast\u0103 func\u021bionalitate. Ce este utilizat activ este func\u021bia <code>ctx.replyWithPhoto<\/code> Aceasta permite trimiterea unei fotografii sau GIF specificat ca r\u0103spuns la un text anume. <\/p>\n<p>O parte semnificativ\u0103 din cod a fost scris\u0103 de copii cu v\u00e2rste \u00eentre 11 \u0219i 13 ani, c\u0103rora le-am dat acces la bot. Ace\u0219tia au introdus propriile user-case-uri. Cred c\u0103 este u\u0219or de identificat care parte a fost realizat\u0103 de ei.<\/p>\n<p>De exemplu, la mesajul \u201ejake\u201d se trimite un GIF cu un personaj cunoscut din desenele animate Adventure Time. <\/p>\n<p><img decoding=\"async\" alt=\"Ghid: cum s\u0103 faci un bot simplu pentru Telegram \u00een JS pentru \u00eencep\u0103tori \u00een programare\" src=\"\/wp-content\/uploads\/2019\/04\/56bdcb4dde80c032c225726b88417fb4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPentru a dezvolta \u0219i mai departe botul, trebuie s\u0103 vezi exemple pentru a conecta tastatura, de exemplu, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/telegraf\/telegraf\/tree\/develop\/docs\/examples\">de aici<\/a><\/noindex><\/p>\n<p><b>11. Cum s\u0103 actualiza\u021bi codul \u0219i s\u0103 reporni\u021bi botul<\/b><\/p>\n<p>Nu uita\u021bi c\u0103 trebuie s\u0103 actualiza\u021bi codul nu doar pe GitHub, ci \u0219i pe server. Este simplu de f\u0103cut \u2014 oprim botul (apel\u00e2nd ctrl+c),<\/p>\n<p> \u2014 introducem \u00een consol\u0103, afl\u00e2ndu-ne \u00een folderul \u021bint\u0103, <code>git pull<\/code><br \/>\n \u2014 relu\u0103m botul cu comanda <code>node index.js<\/code><\/p>\n<p><b>END<\/b><\/p>\n<p>Multe lucruri descrise \u00een acest fi\u0219ier vor fi super evidente pentru programatorii avansa\u021bi. Cu toate acestea, atunci c\u00e2nd am \u00eencercat s\u0103 fac o salt \u00een lumea boturilor, mi-a lipsit foarte mult un astfel de ghid. Un ghid \u00een care nu se trece cu vederea lucruri evidente \u0219i simple pentru orice specialist IT. <\/p>\n<p>\u00cen continuare, pl\u0103nuiesc un post despre cum s\u0103 creez prima mea aplica\u021bie \u00een ReactNative \u00een acela\u0219i stil, abona\u021bi-v\u0103!<br \/>\n<br \/>Sursa: <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.2.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\/ro\/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.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Ghid: cum s\u0103 creezi un bot simplu pentru Telegram \u00een JS pentru \u00eencep\u0103tori \u00een programare | ProHoster","description":"Am \u00eenceput s\u0103 m\u0103 ad\u00e2ncesc \u00een lumea IT-ului doar acum trei s\u0103pt\u0103m\u00e2ni. Serios, acum trei s\u0103pt\u0103m\u00e2ni nu \u00een\u021belegeam nici m\u0103car sintaxa HTML, iar familiarizarea cu limbajele de programare se termina cu programul \u0219colar de Pascal de acum 10 ani.","canonical_url":"https:\/\/prohoster.info\/ro\/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":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/31044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=31044"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/31044\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/23020"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=31044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=31044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=31044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}