{"id":41315,"date":"2020-02-10T12:09:34","date_gmt":"2020-02-10T09:09:34","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/stroim-telegram-bot-v-yandeks-oblake"},"modified":"2020-02-10T12:09:34","modified_gmt":"2020-02-10T09:09:34","slug":"stroim-telegram-bot-v-yandeks-oblake","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/stroim-telegram-bot-v-yandeks-oblake","title":{"rendered":"Construim un bot Telegram \u00een Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/4a758744e4fc6bc797d270fa1bc42ef3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAst\u0103zi, folosind materiale disponibile, vom crea \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/\"><i>Yandex Cloud<\/i><\/a><\/noindex> <i>un bot Telegram<\/i> folosind <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/functions\"><i>Func\u021biile Yandex Cloud<\/i><\/a><\/noindex> (sau <i>Func\u021bii Yandex<\/i> \u2014 pentru a fi mai clar) \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/storage\"><i>Yandex Object Storage<\/i><\/a><\/noindex> (sau <i>Stocare obiect<\/i> \u2014 pentru claritate). Codul va fi pe <i>Node.js<\/i>. Cu toate acestea, exist\u0103 o mic\u0103 problem\u0103 \u2014 o anumit\u0103 organiza\u021bie numit\u0103, s\u0103 zicem, <i>RosKomTenzura<\/i> (cenzura este interzis\u0103 prin articolul 29 din Constitu\u021bia Federa\u021biei Ruse), nu permite furnizorilor de internet din Rusia s\u0103 transmit\u0103 cereri c\u0103tre <i>API-ul Telegram<\/i> la adresa: <code>https:\/\/api.telegram.org\/<\/code>. Dar nu ne vom deranja \u2014 dac\u0103 nu, atunci nu. De fapt, \u00een rucsacul nostru avem a\u0219a-numitele <i>webhooks<\/i> \u2014 cu ajutorul lor nu facem solicit\u0103ri la o adres\u0103 specific\u0103, ci doar trimitem solicitarea noastr\u0103 ca r\u0103spuns la orice solicitare adresat\u0103 nou\u0103. A\u0219adar, ca \u00een Odessa \u2014 r\u0103spundem \u00eentreb\u0103rii cu o \u00eentrebare. Prin urmare, <i>API-ul Telegram<\/i> nu va ap\u0103rea \u00een codul nostru.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Declinarea responsabilit\u0103\u021bii<\/b><i>Numele organiza\u021biilor guvernamentale men\u021bionate \u00een acest articol sunt fictive, iar posibilele coinciden\u021be cu numele organiza\u021biilor reale sunt \u00eent\u00e2mpl\u0103toare. <\/i> <\/p>\n<p>A\u0219adar, vom crea un bot care ne va furniza g\u00e2nduri inteligente. Exact a\u0219a cum este \u00een imagine:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/SmartThoughtsBot\"><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/6b7aca248999621a20f8a0ec29e75c75.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>\u00cel pute\u021bi testa \u00een ac\u021biune \u2014 iat\u0103 numele: <b><i>@SmartThoughtsBot<\/i><\/b>. A\u021bi observat butonul <i>\u201eAbilitatea Alisei\u201d<\/i>? \u042d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0431\u043e\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u043c \u00ab\u043a\u043e\u043c\u043f\u0430\u043d\u044c\u043e\u043d\u043e\u043c\u00bb \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u0433\u043e <i>abilitatea Alisei<\/i>, adic\u0103 \u00eendepline\u0219te acelea\u0219i func\u021bii ca \u0219i <i>abilitatea Alisei<\/i> \u0219i, poate, vor putea coexista \u00een mod pa\u0219nic promov\u00e2ndu-se reciproc. Despre cum s\u0103 creezi <i>abilitatea G\u00e2nduri Inteligente<\/i> a fost descris \u00een articolul <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465275\/\"><b><i>Alisa dob\u00e2nde\u0219te abilitatea<\/i><\/b><\/a><\/noindex>. Acum (dup\u0103 ce au fost efectuate unele modific\u0103ri dup\u0103 publicarea articolului men\u021bionat anterior) pe smartphone acest <i>abilitate<\/i> va ar\u0103ta cam a\u0219a:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/alice.ya.ru\/s\/f785af07-4578-4a6b-95ae-485bd803ae20\"><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/e92c340f8d947ba9252e0fcab0511ce6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Crearea botului<\/h2>\n<p>\nMi-ar pl\u0103cea ca acest tutorial s\u0103 fie util pentru toat\u0103 lumea, inclusiv pentru \u00eencep\u0103torii \u00een \u201econstruirea de bo\u021bi\u201d. De aceea, \u00een aceast\u0103 sec\u021biune voi descrie destul de detaliat cum se creeaz\u0103 bo\u021bi \u00een <i>Telegram<\/i>\u2018de bo\u021bi. Pentru cei pentru care aceast\u0103 informa\u021bie nu este necesar\u0103 \u2014 trece\u021bi la sec\u021biunile urm\u0103toare. <\/p>\n<p>Deschidem aplica\u021bia <i>Telegaram<\/i>, chem\u0103m tat\u0103l tuturor bo\u021bilor (la ei e ca la oameni) \u2014 <b><i>@BotFather<\/i><\/b> \u2014 \u0219i, mai \u00eent\u00e2i, \u00eei d\u0103m comanda \/help, pentru a ne reimprosp\u0103ta memoria cu ce putem face. Acum ne intereseaz\u0103 comanda <i>\/newbot<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/12a0e84dd712e0c74dee0463f1b44e74.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDeoarece botul descris aici este deja creat, pentru scopuri demonstrative voi crea temporar un alt bot (dup\u0103 aceea \u00eel voi \u0219terge). \u00cei voi da numele <i>DemoHabrBot<\/i>. Numele (<i>username<\/i>) tuturor bo\u021bilor Telegram trebuie s\u0103 se termine cu cuv\u00e2ntul <i>bot<\/i>, de exemplu: <i>MyCoolBot<\/i> sau <i>my_cool_bot<\/i> \u2014 aceasta este pentru bo\u021bi. Dar mai \u00eent\u00e2i d\u0103m botului un nume (<i>name<\/i>) \u2014 \u0219i aceasta este pentru oameni. Numele poate fi \u00een orice limb\u0103, poate con\u021bine spa\u021bii, nu trebuie s\u0103 se termine \u00een cuv\u00e2ntul <i>bot<\/i>, \u0219i nici nu trebuie s\u0103 fie unic. \u00cen exemplul de fa\u021b\u0103, am denumit acest bot <i>Demo Habr<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/682ecf64724cabcfef96639d6de87521.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcum alegem un nume pentru bot (<i>username<\/i>, cel dedicat boturilor). S\u0103-l numim <i>DemoHabrBot<\/i>. Tot ce se referea la numele botului (<i>name<\/i>) nu are leg\u0103tur\u0103 deloc cu numele s\u0103u \u2014 <i>username<\/i> (sau are leg\u0103tur\u0103, dar cu o precizie invers\u0103). Dup\u0103 ce am creat cu succes un nume unic pentru bot, trebuie s\u0103 copiem \u0219i s\u0103 p\u0103str\u0103m (\u00een cea mai strict\u0103 confiden\u021bialitate!) token-ul ar\u0103tat \u00een captura de ecran cu s\u0103geata ro\u0219ie. Cu ajutorul s\u0103u, vom stabili mai t\u00e2rziu webhook-ul de la <i>Telegram<\/i>\u2018un webhook pe al nostru <i>. Acum s\u0103 d\u0103m comand\u0103 tat\u0103lui tuturor boturilor:<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/78254946c9f763d212a1952bac6c706f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n, \u0219i el ne va ar\u0103ta lista tuturor boturilor create de noi. S\u0103 l\u0103s\u0103m deocamdat\u0103 botul proasp\u0103t creat <i>\/mybots<\/i>(a fost creat pentru a ar\u0103ta cum se creeaz\u0103 boturi, dar \u00eel vom folosi ast\u0103zi \u0219i pentru alte scopuri demonstrative), \u0219i s\u0103 examin\u0103m botul <i>Demo Habr<\/i> G\u00e2nduri Inteligente <i>). Ap\u0103s\u0103m butonul cu numele s\u0103u din lista boturilor.<\/i> (<i>@SmartThoughtsBot<\/i>Aici putem configura botul nostru. Ap\u0103s\u00e2nd butonul<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/98434725cb0d7441ec5f2552b0b508a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEdit\u2026 <i>Editare\u2026<\/i> Edit Name <i>putem schimba numele botului, spun\u00e2nd \u00een loc de<\/i> , s\u0103 scriem <i>). Ap\u0103s\u0103m butonul cu numele s\u0103u din lista boturilor.<\/i>Idei Nebune\u0219ti <i>Botpic<\/i>. <i>\u2014 acesta este avatarul botului, trebuie s\u0103 fie de minimum<\/i> 150 x 150 px <i>\u2014 aceasta este o descriere scurt\u0103, pe care utilizatorul o vede la prima lansare a botului, ca r\u0103spuns la \u00eentrebarea:<\/i>. <i>Description<\/i> Ce poate face acest bot? <i>\u2014 o descriere \u0219i mai scurt\u0103, care este transmis\u0103 cu un link c\u0103tre bot (<\/i> <i>Despre<\/i> ) sau la vizualizarea informa\u021biilor despre acesta.<code>https:\/\/t.me\/SmartThoughtsBot<\/code>Ne mai r\u0103m\u00e2ne doar s\u0103 configur\u0103m comenzile. Pentru aceasta, ap\u0103s\u0103m butonul<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f15ba92be1bfea827273f79616bd2a3a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEdit Commands <i>. Pentru standardizarea practicii utilizatorilor<\/i>recomand\u0103 \u00eentotdeauna utilizarea a dou\u0103 comenzi: <i>Telegram<\/i> , iar dac\u0103 botului \u00eei sunt necesare set\u0103ri \u2014 o comand\u0103 suplimentar\u0103 \/settings. Botul nostru este simplu ca un bulg\u0103re, a\u0219a c\u0103 nu are nevoie de set\u0103ri deocamdat\u0103. Scriem primele dou\u0103 comenzi, pe care le vom procesa ulterior \u00een cod. Acum, dac\u0103 utilizatorul va introduce \u00een c\u00e2mpul de input Slash (semnul slash: \/), va ap\u0103rea o list\u0103 de comenzi pentru selec\u021bia rapid\u0103. Totul ca \u00een imagine: \u00een st\u00e2nga \u2014 stabilim comenzile prin tat\u0103l boturilor; \u00een dreapta aceste comenzi sunt deja disponibile utilizatorilor \u00een botul nostru. <i>\/start<\/i> \u0219i <i>\/help<\/i>func\u021bia web Yandex<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/b536b5fe7b8aad3d68877a7693ea0e6f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Acum, c\u00e2nd botul nostru a fost creat, trecem la<\/h2>\n<p>\nAcum, c\u00e2nd botul nostru a fost creat, trecem la <i>Yandex.Cloud<\/i>, pentru a crea o func\u021bie care va executa codul botului nostru. Dac\u0103 nu a\u021bi lucrat \u00eenc\u0103 cu <i>Yandex.Cloud<\/i> , citi\u021bi materialul <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464739\/\"><b><i>Alice \u00een \u021bara Bitrix<\/i><\/b><\/a><\/noindex>, \u0219i apoi \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/440374\/\"><b><i>Func\u021biile Yandex trimit emailuri<\/i><\/b><\/a><\/noindex>. Sunt aproape sigur c\u0103 aceste dou\u0103 articole relativ scurte v\u0103 vor fi suficiente pentru o \u00een\u021belegere de baz\u0103 a subiectului.<\/p>\n<p>A\u0219adar, \u00een consola <i>Yandex.Cloud<\/i> \u00een meniul de navigare din st\u00e2nga, select\u0103m punctul <i>Func\u021bii Cloud<\/i>, \u0219i apoi ap\u0103s\u0103m butonul <i>Creeaz\u0103 func\u021bia<\/i>. \u00cei atribuim un nume \u0219i, pentru noi, o descriere scurt\u0103.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/67f313c60481c5ef84af8a28b4934621.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDup\u0103 ce a\u021bi ap\u0103sat butonul <i>Creare<\/i> \u0218i dup\u0103 c\u00e2teva secunde, noua func\u021bie va ap\u0103rea \u00een lista tuturor func\u021biilor. Ap\u0103s\u0103m pe numele ei \u2014 asta ne va duce la pagina <i>Prezentare general\u0103<\/i> func\u021biei noastre. Aici trebuie s\u0103 activ\u0103m (<i>Activat<\/i>) comutatorul <i>Func\u021bie public\u0103<\/i>, pentru a o face accesibil\u0103 din lumea extern\u0103 (pentru <i>Yandex.Cloud<\/i>) a\u0219a \u00eenc\u00e2t valorile c\u00e2mpurilor <i>Link pentru apelare<\/i> \u0219i <i>Identificator<\/i> \u2014 p\u0103stra\u021bi \u00een secret profund fa\u021b\u0103 de to\u021bi, cu excep\u021bia dvs. \u0219i a Telegramului, astfel \u00eenc\u00e2t func\u021bia dvs. s\u0103 nu poat\u0103 fi apelat\u0103 de diferi\u021bi escroci.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ba45d357965d567ba33ab0ee65d2eb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcum, cu ajutorul meniului din st\u00e2nga, ne mut\u0103m la <i>Editor<\/i> func\u021bii. Haide\u021bi s\u0103 l\u0103s\u0103m deoparte, pentru o scurt\u0103 perioad\u0103, <i>). Ap\u0103s\u0103m butonul cu numele s\u0103u din lista boturilor.<\/i>, \u0219i s\u0103 cre\u0103m o func\u021bie template minim\u0103 pentru a verifica dac\u0103 botul nostru func\u021bioneaz\u0103\u2026 De fapt, \u00een acest context, aceast\u0103 func\u021bie este botul nostru\u2026 A\u0219adar, acum \u0219i aici vom crea un bot simplu care va \u201ereflecta\u201d (adic\u0103 va trimite \u00eenapoi) cererile utilizatorilor. Acest template poate fi folosit \u00eentotdeauna la crearea de noi boti Telegram, pentru a ne asigura c\u0103 leg\u0103tura cu <i>Telegram\u2019<\/i>func\u021bioneaz\u0103 corect. Ap\u0103s\u0103m <i>Creeaz\u0103 fi\u0219ier<\/i>, \u00eel numim <i>index.js<\/i>, \u0219i \u00een editorul <i>Online Code<\/i> inser\u0103m \u00een acest fi\u0219ier urm\u0103torul cod:<\/p>\n<pre><code class=\"javascript\">module.exports.bot = async (event) =&gt; {\n  \n  const body = JSON.parse(event.body);\n\n  const msg = {\n    'method': 'sendMessage',\n    'chat_id': body.message.chat.id,\n    'text': body.message.text\n  };\n\n  return {\n    'statusCode': 200,\n    'headers': {\n      'Content-Type': 'application\/json'\n    },\n    'body': JSON.stringify(msg),\n    'isBase64Encoded': false\n  };\n};\n<\/code><\/pre>\n<p>\n\u00cen consola Yandex.Cloud, aceasta ar trebui s\u0103 arate cam a\u0219a:<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f0204be84468c9ae7ec1b9e4ca0dfdd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMai jos, specific\u0103m <i>Punctul de intrare<\/i> \u2014 <i>index.bot<\/i>, unde <i>index<\/i> este numele fi\u0219ierului (<i>index.js<\/i>), iar <i>bot<\/i> \u2014 numele func\u021biei (<i>module.exports.bot<\/i>). Toate celelalte c\u00e2mpuri le l\u0103s\u0103m \u201ea\u0219a cum sunt\u201d, iar \u00een col\u021bul din dreapta sus ap\u0103s\u0103m butonul <i>Creeaz\u0103 versiunea<\/i>. Dup\u0103 c\u00e2teva secunde, aceast\u0103 versiune a func\u021biei va fi creat\u0103. \u00cen cur\u00e2nd, dup\u0103 testarea <i>webhook-ului<\/i>, vom crea o nou\u0103 versiune \u2014 <i>). Ap\u0103s\u0103m butonul cu numele s\u0103u din lista boturilor.<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/48cd898f83bdc29d124600828bf2143f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Stocare obiect<\/h2>\n<p>\nAcum, c\u00e2nd am creat <i>Acum, c\u00e2nd botul nostru a fost creat, trecem la<\/i>, s\u0103 continu\u0103m, c\u00e2t timp suntem \u00een consol\u0103 <i>Yandex.Cloud<\/i>, vom crea un a\u0219a-numit bucket (<i>bucket<\/i>, adic\u0103 un recipient pentru stocarea fi\u0219ierelor imagini care vor fi utilizate \u00een botul nostru <i>). Ap\u0103s\u0103m butonul cu numele s\u0103u din lista boturilor.<\/i>. \u00cen meniul de navigare din st\u00e2nga, selecta\u021bi op\u021biunea <i>Object Storage<\/i>, face\u021bi clic pe butonul <i>Creeaz\u0103 bucket<\/i>, g\u00e2ndi\u021bi-i un nume, de exemplu, <i>img-bucket<\/i>, \u0219i, cel mai important, <i>Acces pentru citirea obiectelor<\/i> facem public \u2014 altfel Telegramul nu va vedea imaginile noastre. Toate celelalte c\u00e2mpuri r\u0103m\u00e2n neschimbate. Ap\u0103sa\u021bi butonul <i>Creeaz\u0103 bucket<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c890a42f7d043e03300434b2c4a0258b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDup\u0103 aceasta, lista tuturor bucket-urilor poate ar\u0103ta cam a\u0219a (dac\u0103 acesta este singurul dumneavoastr\u0103 bucket):<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/34701231536742a7889b200ff49b08b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcum v\u0103 sugerez s\u0103 face\u021bi clic pe numele bucket-ului \u0219i s\u0103 crea\u021bi \u00een interiorul lui un folder pentru a organiza stocarea imaginilor pentru diferitele aplica\u021bii ale dumneavoastr\u0103. De exemplu, pentru botul de Telegram <i>). Ap\u0103s\u0103m butonul cu numele s\u0103u din lista boturilor.<\/i> am creat un folder numit <i>tg-bot-smart-thoughts<\/i> (nicio problem\u0103, voi \u00een\u021belege acest cod). Crea\u021bi \u0219i dumneavoastr\u0103 unul.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c5707b5ba54fea5b548d62e097328650.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcum pute\u021bi face clic pe numele folder-ului, s\u0103 intra\u021bi \u00een el \u0219i s\u0103 \u00eenc\u0103rca\u021bi fi\u0219iere:<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/ead320e587e1d161e2cd54a94b4ea0d4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIar f\u0103c\u00e2nd clic pe numele fi\u0219ierului \u2014 ve\u021bi ob\u021bine <i>URL<\/i> pentru utilizare \u00een botul nostru \u0219i, \u00een general \u2014 oriunde (dar nu publica\u021bi acesta <i>URL<\/i> f\u0103r\u0103 necesitate, deoarece traficul de la <i>Stocarea Obiectelor<\/i> este tarifat\u0103).<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/07a833430b0584161423f363f6685306.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIat\u0103, de fapt, totul despre <i>Stocarea Obiectelor<\/i>. Acum ve\u021bi \u0219ti ce s\u0103 face\u021bi c\u00e2nd vede\u021bi o solicitare de a \u00eenc\u0103rca fi\u0219iere acolo.<\/p>\n<h2>Webhook<\/h2>\n<p>\nAcum vom seta un <i>webhook<\/i> \u2014 adic\u0103 atunci c\u00e2nd botul prime\u0219te o actualizare (de exemplu, un mesaj de la utilizator), de la server <i>Telegram<\/i> va fi trimis\u0103 o solicitare ( <i>. Acum s\u0103 d\u0103m comand\u0103 tat\u0103lui tuturor boturilor:<\/i> request<i>) cu datele. Iat\u0103 linia pe care o pute\u021bi insera pur \u0219i simplu \u00een c\u00e2mpul de adres\u0103 al browser-ului \u0219i apoi s\u0103 actualiza\u021bi pagina (asta trebuie f\u0103cut o singur\u0103 dat\u0103):<\/i>Doar \u00eenlocui\u021bi <code>https:\/\/api.telegram.org\/bot{bot_token}\/setWebHook?url={webhook_url}<\/code><br \/>\n{bot_token} <i>cu token-ul pe care l-am primit de la botul p\u0103rinte c\u00e2nd am creat botul nostru, iar<\/i> {webhook_url} <i>\u2014 cu<\/i> al nostru. <i>URL<\/i> Un moment! Dar <i>Func\u021bii Yandex<\/i>interzice furnizorilor din RF s\u0103 deserveasc\u0103 adresa <i>RosKomTenzura<\/i> . Da, corect. Dar g\u00e2ndi\u021bi-v\u0103 la ceva. Pute\u021bi, de exemplu, s\u0103-i cere\u021bi bunicii dumneavoastr\u0103 din Ucraina, Israel sau Canada \u2014 acolo nu exist\u0103 \u201ecenzuri ruse\u0219ti\u201d, \u0219i numai Dumnezeu \u0219tie cum tr\u0103iesc oamenii f\u0103r\u0103 asta. \u00cen cele din urm\u0103, solicitarea-r\u0103spuns la setarea webhook-ului ar trebui s\u0103 arate a\u0219a: <code>https:\/\/api.telegram.org<\/code>Test\u0103m. Trebuie s\u0103 \u201ereflecte\u201d.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/713834a1665520d3e471cd3d1831ac06.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA\u0219a este. Felicit\u0103rile noastre \u2014 acum<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ab0e97f9b0ca06295fe7f5f793aab2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n-bot! <i>Acum, c\u00e2nd botul nostru a fost creat, trecem la<\/i> a devenit <i>Telegram<\/i>Acum facem G\u00e2nduri Inteligente. Codul este deschis \u0219i se afl\u0103 pe<\/p>\n<h2>). Ap\u0103s\u0103m butonul cu numele s\u0103u din lista boturilor.<\/h2>\n<p>\n. Este bine comentat \u0219i are doar o sut\u0103 de linii. Citi\u021bi-l ca o div\u0103 de oper\u0103 liberetul! <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>GitHub<\/i><\/b><\/a><\/noindex>Clona\u021bi proiectul \u0219i instala\u021bi dependen\u021bele: <\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/2ad0e96a2169d0859ccec836f151d3ea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nClona\u021bi proiectul \u0219i instala\u021bi dependen\u021bele:<\/p>\n<pre><code class=\"plaintext\">git clone https:\/\/github.com\/stmike\/tg-bot-smart-thoughts.git\ncd tg-bot-smart-thoughts\nnpm i\n<\/code><\/pre>\n<p>\nFace\u021bi modific\u0103rile necesare \u00een fi\u0219ier <i>index.js<\/i> (op\u021bional; nu este necesar s\u0103 schimba\u021bi nimic). Crea\u021bi <i>zip<\/i>-arhiv\u0103, cu fi\u0219ierul <i>index.js<\/i> \u0219i folderul <i>node_modules<\/i> \u00een interior, de exemplu, sub numele <i>smart.zip<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c8c97707515338a01f8b8ed7f743c4a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAcum merge\u021bi la consola noastr\u0103 <i>Func\u021bii Yandex<\/i>, alege\u021bi tab-ul <i>Arhiv\u0103 ZIP<\/i>, ap\u0103sa\u021bi butonul <i>Alege\u021bi fi\u0219ierul<\/i>, \u0219i \u00eenc\u0103rca\u021bi arhiva noastr\u0103 <i>smart.zip<\/i>. \u00cen cele din urm\u0103, \u00een col\u021bul din dreapta sus ap\u0103sa\u021bi butonul <i>Creeaz\u0103 versiunea<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/96634c132848278ecc00a509e61b13f0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDup\u0103 c\u00e2teva secunde, c\u00e2nd func\u021bia se va actualiza, s\u0103 test\u0103m din nou botul nostru. Acum el nu mai \u201ereflect\u0103\u201d, ci ofer\u0103 g\u00e2nduri inteligente!<\/p>\n<p><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/0c683826b5ef2bdbbd0253de4691900a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAsta este tot pentru ast\u0103zi. Alte articole urmeaz\u0103. Cei interesa\u021bi s\u0103 citeasc\u0103 a\u0219a ceva \u2014 abona\u021bi-v\u0103 la notific\u0103rile despre articolele noi. Pute\u021bi s\u0103 v\u0103 abona\u021bi aici sau pe <i>Telegram<\/i>-canal <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/it_tutorial_zahar\"><i>IT Tutorial Zah\u0103r<\/i><\/a><\/noindex>, sau <i>Twitter<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/mikezaharov\"><i>@mikezaharov<\/i><\/a><\/noindex>.<\/p>\n<h2>Linkuri<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>Cod pe GitHub<\/i><\/b><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/docs\/functions\/\"><b><i>Func\u021biile Yandex Cloud<\/i><\/b><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/docs\/storage\/\"><b><i>Yandex Object Storage<\/i><\/b><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/core.telegram.org\/bots\"><b><i>Bots: O introducere pentru dezvoltatori<\/i><\/b><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/core.telegram.org\/bots\/api\"><b><i>API-ul Botului Telegram<\/i><\/b><\/a><\/noindex><\/p>\n<h2>Donatii<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/yasobe.ru\/na\/vui\"><img decoding=\"async\" alt=\"Construim un bot Telegram \u00een Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/250f8765713080fcbbdaf56c04dc882f.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/486876\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0438\u0437 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043c\u044b \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0435 Telegram-\u0431\u043e\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Yandex Cloud Functions (\u0438\u043b\u0438 \u042f\u043d\u0434\u0435\u043a\u0441-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438) \u0438 Yandex Object Storage (\u0438\u043b\u0438 \u041e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u2014 \u0434\u043b\u044f \u044f\u0441\u043d\u043e\u0441\u0442\u0438). \u041a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 Node.js. \u041e\u0434\u043d\u0430\u043a\u043e, \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u043f\u0438\u043a\u0430\u043d\u0442\u043d\u043e\u0435 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u2014 \u043d\u0435\u043a\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a, \u0420\u043e\u0441\u0441\u041a\u043e\u043c\u0426\u0435\u043d\u0437\u0443\u0440 (\u0446\u0435\u043d\u0437\u0443\u0440\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 29 \u041a\u043e\u043d\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u0438 \u0420\u0424), \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":41316,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-41315","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0438\u0437 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043c\u044b \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0432.\" \/>\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\/stroim-telegram-bot-v-yandeks-oblake\" \/>\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\u0421\u0442\u0440\u043e\u0438\u043c Telegram-\u0431\u043e\u0442 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0438\u0437 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043c\u044b \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/stroim-telegram-bot-v-yandeks-oblake\" \/>\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=\"2020-02-10T09:09:34+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-10T09:09:34+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\udd47Construim un bot Telegram \u00een Yandex.Cloud | ProHoster","description":"Ast\u0103zi din materiale disponibile vom construi un.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/stroim-telegram-bot-v-yandeks-oblake","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\u0421\u0442\u0440\u043e\u0438\u043c Telegram-\u0431\u043e\u0442 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0435 | ProHoster","og:description":"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0438\u0437 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043c\u044b \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0432.","og:url":"https:\/\/prohoster.info\/ro\/blog\/stroim-telegram-bot-v-yandeks-oblake","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":"2020-02-10T09:09:34+00:00","article:modified_time":"2020-02-10T09:09:34+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"41315","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:19:25","updated":"2022-09-29 21:53:55","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\/41315","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=41315"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/41316"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}