{"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\/sk\/blog\/stroim-telegram-bot-v-yandeks-oblake","title":{"rendered":"Stav\u00edme Telegram-bota v Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/4a758744e4fc6bc797d270fa1bc42ef3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDnes zo dostupn\u00fdch materi\u00e1lov zlo\u017e\u00edme v <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/\"><i>Yandex.Cloud<\/i><\/a><\/noindex> <i>Telegram-bota<\/i> s vyu\u017eit\u00edm <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/functions\"><i>Yandex Cloud Functions<\/i><\/a><\/noindex> (alebo <i>Yandex-funkcie<\/i> \u2014 pre zjednodu\u0161enie) a <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/storage\"><i>Yandex Object Storage<\/i><\/a><\/noindex> (alebo <i>Objektov\u00e1 \u00falo\u017eisko<\/i> \u2014 pre jasnos\u0165). K\u00f3d bude na <i>Node.js<\/i>. Av\u0161ak, existuje jedna pikantn\u00e1 okolnos\u0165 \u2014 ak\u00e1si organiz\u00e1cia s n\u00e1zvom, povedzme, <i>RosKomCenzur<\/i> (cenz\u00fara je zak\u00e1zan\u00e1 \u010dl\u00e1nkom 29 \u00dastavy RF), neumo\u017e\u0148uje internetov\u00fdm poskytovate\u013eom Ruska odovzd\u00e1va\u0165 \u017eiadosti na <i>Telegram API<\/i> na adrese: <code>https:\/\/api.telegram.org\/<\/code>. Tak my sa ani nebudeme \u2014 nie je, tak nie je. Ve\u010f v na\u0161om kufr\u00edku m\u00e1me tzv. <i>webhooky<\/i> \u2014 s ich pomocou nerob\u00edme \u017eiadosti na konkr\u00e9tnu adresu, ale iba posielame svoju \u017eiados\u0165 ako odpove\u010f na ak\u00fako\u013evek \u017eiados\u0165 na n\u00e1s. To znamen\u00e1, \u017ee, ako v Odese \u2014 odpoved\u00e1me ot\u00e1zkou na ot\u00e1zku. Preto <i>Telegram API<\/i> v na\u0161om k\u00f3de nebude figurova\u0165.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Zrieknutie sa zodpovednosti<\/b><i>Zmienky v tomto \u010dl\u00e1nku o ak\u00fdchko\u013evek \u0161t\u00e1tnych organiz\u00e1ci\u00e1ch s\u00fa fikt\u00edvne a mo\u017en\u00e9 zcoincidencie s n\u00e1zvami skuto\u010dne existuj\u00facich organiz\u00e1ci\u00ed s\u00fa n\u00e1hodn\u00e9. <\/i> <\/p>\n<p>A teda, urob\u00edme bota, ktor\u00fd n\u00e1s bude z\u00e1sobova\u0165 inteligentn\u00fdmi my\u0161lienkami. Presne tak\u00e9ho, ako na obr\u00e1zku:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/SmartThoughtsBot\"><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/6b7aca248999621a20f8a0ec29e75c75.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>M\u00f4\u017eete si ho vysk\u00fa\u0161a\u0165 v akcii \u2014 tu je meno: <b><i>@SmartThoughtsBot<\/i><\/b>. V\u0161imli ste si tla\u010didlo <i>\u00abZru\u010dnos\u0165 Alice\u00bb<\/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>zru\u010dnosti Alice<\/i>, t.j. pln\u00ed rovnak\u00e9 funkcie, ako <i>zru\u010dnos\u0165 Alice<\/i> a mo\u017eno, \u017ee bud\u00fa m\u00f4c\u0165 mierne koexistova\u0165, reklamuj\u00fac jeden druh\u00e9ho. O tom, ako vytvori\u0165 <i>zru\u010dnos\u0165 Inteligentn\u00e9 My\u0161lienky<\/i> je p\u00edsan\u00e9 v \u010dl\u00e1nku <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465275\/\"><b><i>Alice z\u00edska zru\u010dnos\u0165<\/i><\/b><\/a><\/noindex>. Teraz (po niektor\u00fdch zmen\u00e1ch u\u017e po publikovan\u00ed vy\u0161\u0161ie uveden\u00e9ho \u010dl\u00e1nku) na smartphone t\u00e1to <i>zru\u010dnos\u0165<\/i> bude vyzera\u0165 asi takto:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/alice.ya.ru\/s\/f785af07-4578-4a6b-95ae-485bd803ae20\"><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/e92c340f8d947ba9252e0fcab0511ce6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Vytvorenie bota<\/h2>\n<p>\nChcel by som, aby tento tutori\u00e1l bol u\u017eito\u010dn\u00fd pre v\u0161etk\u00fdch, vr\u00e1tane za\u010diato\u010dn\u00edkov v \u201ebotstavan\u00ed\u201c. Preto v tejto \u010dasti podrobne op\u00ed\u0161em, ako vlastne vytv\u00e1ra\u0165 bota v <i>Telegram<\/i>\u2018je botov. Pre t\u00fdch, ktor\u00fdm tieto inform\u00e1cie nie s\u00fa potrebn\u00e9 \u2014 prejdite na nasleduj\u00face sekcie. <\/p>\n<p>Otv\u00e1rame aplik\u00e1ciu <i>Telegaram<\/i>, vol\u00e1me otca v\u0161etk\u00fdch botov (maj\u00fa to ako \u013eudia) \u2014 <b><i>@BotFather<\/i><\/b> \u2014 a na \u00favod mu d\u00e1me pr\u00edkaz \/help, aby sme si osvie\u017eili pam\u00e4\u0165, \u010do m\u00f4\u017eeme robi\u0165. Teraz n\u00e1s bude zauj\u00edma\u0165 pr\u00edkaz <i>\/newbot<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/12a0e84dd712e0c74dee0463f1b44e74.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPreto\u017ee popisovan\u00fd bot je u\u017e vytvoren\u00fd, na demon\u0161tra\u010dn\u00e9 \u00fa\u010dely vytvor\u00edm kr\u00e1tkodobo in\u00e9ho bota (potom ho odstr\u00e1nim). Nazvem ho <i>DemoHabrBot<\/i>. Men\u00e1 (<i>username<\/i>) v\u0161etk\u00fdch telegram-botov musia kon\u010di\u0165 slovom <i>bot<\/i>, napr\u00edklad: <i>MyCoolBot<\/i> alebo <i>my_cool_bot<\/i> \u2014 to je pre boty. Ale najprv d\u00e1me botovi n\u00e1zov (<i>name<\/i>) \u2014 a to je pre \u013eud\u00ed. N\u00e1zov m\u00f4\u017ee by\u0165 v akomko\u013evek jazyku, obsahova\u0165 medzery, nemus\u00ed kon\u010di\u0165 slovom <i>bot<\/i>, a dokonca nemus\u00ed by\u0165 ani unik\u00e1tny. V tomto pr\u00edklade som nazval tohto bota <i>Demo Habr<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/682ecf64724cabcfef96639d6de87521.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeraz vyber\u00e1me bota meno (<i>username<\/i>, to, ktor\u00e9 je pre boty). Nazvime ho <i>DemoHabrBot<\/i>. V\u0161etko, \u010do sa t\u00fdka n\u00e1zvu bota (<i>name<\/i>) sa v\u00f4bec net\u00fdka jeho mena \u2014 <i>username<\/i> (alebo sa t\u00fdka, ale s presnos\u0165ou naopak). Po \u00faspe\u0161nom vytvoren\u00ed unik\u00e1tneho mena bota, mus\u00edme kop\u00edrova\u0165 a uchova\u0165 (v najpr\u00edsnej\u0161ej tajnosti!) token, ktor\u00fd je zobrazen\u00fd na sn\u00edmke s \u010dervenou \u0161\u00edpkou. S jeho pomocou nain\u0161talujeme nesk\u00f4r vych\u00e1dzaj\u00facu <i>Telegram<\/i>\u2018a webhook na na\u0161u <i>Yandex funkciu<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/78254946c9f763d212a1952bac6c706f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA teraz d\u00e1me pr\u00edkaz otcovi v\u0161etk\u00fdch botov: <i>\/mybots<\/i>, a on n\u00e1m uk\u00e1\u017ee zoznam v\u0161etk\u00fdch na\u0161ich vytvoren\u00fdch botov. Nechajme zatia\u013e na pokoji \u010derstvo vytvoren\u00e9ho bota <i>Demo Habr<\/i> (bol vytvoren\u00fd, aby uk\u00e1zal, ako vytv\u00e1ra\u0165 botov, ale e\u0161te ho dnes vyu\u017eijeme na in\u00e9 demon\u0161tra\u010dn\u00e9 \u00fa\u010dely), a pozrime sa na bota <i>Inteligentn\u00e9 My\u0161lienky<\/i> (<i>@SmartThoughtsBot<\/i>). Klikneme v zozname botov na tla\u010didlo s jeho menom.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/98434725cb0d7441ec5f2552b0b508a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTu m\u00f4\u017eeme nastavi\u0165 n\u00e1\u0161ho bota. Kliknut\u00edm na tla\u010didlo <i>Upravi\u0165\u2026<\/i> prejdeme na \u00fapravu tej alebo onej mo\u017enosti. Napr\u00edklad, kliknut\u00edm na tla\u010didlo <i>Edit Name<\/i> m\u00f4\u017eeme zmeni\u0165 n\u00e1zov bota, povedzme namiesto <i>Inteligentn\u00e9 My\u0161lienky<\/i>, nap\u00edsa\u0165 <i>Bl\u00e1zniv\u00e9 N\u00e1pady<\/i>. <i>Botpic<\/i> \u2014 to je avatar bota, mal by by\u0165 minim\u00e1lne <i>150 x 150 px<\/i>. <i>Description<\/i> \u2014 to je stru\u010dn\u00fd popis, ktor\u00fd pou\u017e\u00edvate\u013e vid\u00ed pri prvom spusten\u00ed bota, ako odpove\u010f na ot\u00e1zku: <i>\u010co m\u00f4\u017ee tento bot robi\u0165?<\/i> <i>O<\/i> \u2014 e\u0161te stru\u010dnej\u0161\u00ed popis, ktor\u00fd sa odovzd\u00e1va s odkazom na bota (<code>https:\/\/t.me\/SmartThoughtsBot<\/code>) alebo pri prezeran\u00ed inform\u00e1ci\u00ed o \u0148om.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f15ba92be1bfea827273f79616bd2a3a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZost\u00e1va n\u00e1m u\u017e len nastavi\u0165 pr\u00edkazy. Na to klikneme na tla\u010didlo <i>Edit Commands<\/i>. Pre \u0161tandardiz\u00e1ciu pou\u017e\u00edvate\u013eskej praxe <i>Telegram<\/i> odpor\u00fa\u010da v\u017edy pou\u017e\u00edva\u0165 dva pr\u00edkazy: <i>\/start<\/i> a <i>\/help<\/i>, a ak bot potrebuje nastavenia \u2014 \u010fal\u0161\u00ed pr\u00edkaz \/settings. N\u00e1\u0161 bot je jednoduch\u00fd ako gu\u013ea, tak\u017ee nastavenia zatia\u013e nepotrebuje. Zap\u00ed\u0161eme prv\u00e9 dva pr\u00edkazy, ktor\u00e9 nesk\u00f4r spracujeme v k\u00f3de. Teraz, ak pou\u017e\u00edvate\u013e do vstupn\u00e9ho po\u013ea zad\u00e1 lomku (znak kosou \u010diarou: \/), objav\u00ed sa zoznam pr\u00edkazov pre r\u00fdchly v\u00fdber. V\u0161etko ako na obr\u00e1zku: v\u013eavo \u2014 nastavujeme pr\u00edkazy cez otca bota; vpravo bud\u00fa tieto pr\u00edkazy u\u017e dostupn\u00e9 pou\u017e\u00edvate\u013eom v na\u0161om botovi.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/b536b5fe7b8aad3d68877a7693ea0e6f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Yandex funkcia<\/h2>\n<p>\nTeraz, ke\u010f je n\u00e1\u0161 bot vytvoren\u00fd, prech\u00e1dzame do <i>Yandex.Cloud<\/i>, aby sme vytvorili funkciu, ktor\u00e1 vykon\u00e1 k\u00f3d n\u00e1\u0161ho bota. Ak ste e\u0161te nepracovali s <i>Yandex.Cloud<\/i> , pre\u010d\u00edtajte si materi\u00e1l <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464739\/\"><b><i>Alice v krajine Bitrix<\/i><\/b><\/a><\/noindex>, a potom \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/440374\/\"><b><i>Yandex funkcie posielaj\u00fa e-maily<\/i><\/b><\/a><\/noindex>. Som takmer presved\u010den\u00fd, \u017ee t\u00fdchto dvoch relat\u00edvne mal\u00fdch \u010dl\u00e1nkov v\u00e1m \u00faplne posta\u010d\u00ed na z\u00e1kladn\u00e9 pochopenie t\u00e9my.<\/p>\n<p>Tak\u017ee v konzole <i>Yandex.Cloud<\/i> v \u013eavom naviga\u010dnom menu vyberieme polo\u017eku <i>Cloud Functions<\/i>, a potom klikneme na tla\u010didlo <i>Vytvori\u0165 funkciu<\/i>. Prirad\u00edme jej n\u00e1zov a pre seba \u2014 kr\u00e1tky popis.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/67f313c60481c5ef84af8a28b4934621.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPo stla\u010den\u00ed tla\u010didla <i>Vytvori\u0165<\/i> a po nieko\u013ek\u00fdch sekund\u00e1ch sa nov\u00e1 funkcia objav\u00ed v zozname v\u0161etk\u00fdch funkci\u00ed. Kliknite na jej n\u00e1zov \u2014 to n\u00e1s prenesie na str\u00e1nku <i>Preh\u013ead<\/i> na\u0161ej funkcie. Tu mus\u00edme zapn\u00fa\u0165 (<i>On<\/i>) prep\u00edna\u010d <i>Verejn\u00e1 funkcia<\/i>, aby bola pr\u00edstupn\u00e1 z vonkaj\u0161ieho (pre <i>Yandex.Cloud<\/i>) sveta, a hodnota pol\u00ed <i>Odkaz na volanie<\/i> a <i>Identifik\u00e1tor<\/i> \u2014 uchov\u00e1va\u0165 v hlbokom tajomstve pred v\u0161etk\u00fdmi okrem seba sam\u00e9ho a Telegramu, aby va\u0161u funkciu nemohli vyvola\u0165 r\u00f4zni podvodn\u00edci.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ba45d357965d567ba33ab0ee65d2eb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeraz pomocou \u013eav\u00e9ho menu prejdeme do <i>Editor<\/i> funkcie. Po\u010das chv\u00edle odlo\u017e\u00edme na\u0161e <i>Inteligentn\u00e9 My\u0161lienky<\/i>, a vytvor\u00edme minim\u00e1lnu \u0161abl\u00f3nov\u00fa funkciu na overenie funk\u010dnosti n\u00e1\u0161ho bota\u2026 Vlastne, v tomto kontexte t\u00e1to funkcia je n\u00e1\u0161 bot\u2026 Skr\u00e1tka, teraz a hne\u010f tu vytvor\u00edme najjednoduch\u0161ieho bota, ktor\u00fd bude \u201ezrkadli\u0165\u201c (t.j. posiela\u0165 sp\u00e4\u0165) po\u017eiadavky pou\u017e\u00edvate\u013eov. T\u00fato \u0161abl\u00f3nu m\u00f4\u017eete v\u017edy pou\u017ei\u0165 pri vytv\u00e1ran\u00ed nov\u00fdch telegramov\u00fdch botov, aby ste sa uistili, \u017ee spojenie s <i>Telegram\u2019<\/i>funguje spr\u00e1vne. Kliknite na <i>Vytvori\u0165 s\u00fabor<\/i>, nazveme ho <i>index.js<\/i>, a v online <i>Editor k\u00f3du<\/i> vlo\u017e\u00edme do tohto s\u00faboru nasleduj\u00faci k\u00f3d:<\/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>\nV konzole Yandex.Cloud to bude vyzera\u0165 pribli\u017ene takto:<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f0204be84468c9ae7ec1b9e4ca0dfdd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u010ealej ni\u017e\u0161ie uvedieme <i>Bod vstupu<\/i> \u2014 <i>index.bot<\/i>, kde <i>index<\/i> to je n\u00e1zov s\u00faboru (<i>index.js<\/i>), a <i>bot<\/i> \u2014 n\u00e1zov funkcie (<i>module.exports.bot<\/i>). V\u0161etky ostatn\u00e9 polia nech\u00e1me \u201eako s\u00fa\u201c, a v pravom hornom rohu klikneme na tla\u010didlo <i>Vytvori\u0165 verziu<\/i>. O nieko\u013eko sek\u00fand bude t\u00e1to verzia funkcie vytvoren\u00e1. \u010coskoro, po testovan\u00ed <i>webhooku<\/i>, vytvor\u00edme nov\u00fa verziu \u2014 <i>Inteligentn\u00e9 My\u0161lienky<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/48cd898f83bdc29d124600828bf2143f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Objektov\u00e1 \u00falo\u017eisko<\/h2>\n<p>\nTeraz, ke\u010f sme vytvorili <i>Yandex funkcia<\/i>, po\u010fme, zatia\u013e \u010do sme v konzole <i>Yandex.Cloud<\/i>, vytvor\u00edme takzvan\u00fd bucket (<i>bucket<\/i>, t.j. vedro po slovensky, rozhodne nie kytica) na ukladanie obr\u00e1zkov\u00fdch s\u00faborov, ktor\u00e9 bud\u00fa pou\u017eit\u00e9 v na\u0161om bote <i>Inteligentn\u00e9 My\u0161lienky<\/i>. V \u013eavom naviga\u010dnom menu vyberieme polo\u017eku <i>Object Storage<\/i>, klikneme na tla\u010didlo <i>Vytvori\u0165 bucket<\/i>, vymysl\u00edme mu n\u00e1zov, napr\u00edklad <i>img-bucket<\/i>, a, samozrejme, <i>Pr\u00edstup na \u010d\u00edtanie objektov<\/i> rob\u00edme verejn\u00fdm \u2014 inak Telegramu na\u0161ich obr\u00e1zkov nie je vidie\u0165. V\u0161etky ostatn\u00e9 polia nech\u00e1me bez zmien. Stla\u010d\u00edme tla\u010didlo <i>Vytvori\u0165 bucket<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c890a42f7d043e03300434b2c4a0258b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPotom m\u00f4\u017ee zoznam v\u0161etk\u00fdch bucketov vyzera\u0165 pribli\u017ene takto (ak je to v\u00e1\u0161 jedin\u00fd bucket):<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/34701231536742a7889b200ff49b08b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeraz navrhujem klikn\u00fa\u0165 na n\u00e1zov bucketu a vo vn\u00fatri neho vytvori\u0165 prie\u010dinok, aby sme usporiadali ukladanie obr\u00e1zkov pre r\u00f4zne svoje aplik\u00e1cie. Napr\u00edklad, pre telegramov\u00e9ho bota <i>Inteligentn\u00e9 My\u0161lienky<\/i> som vytvoril prie\u010dinok s n\u00e1zvom <i>tg-bot-smart-thoughts<\/i> (ni\u010d, pochop\u00edm tento \u0161ifrovan\u00fd n\u00e1zov). Vytvorte si aj vy nejak\u00fd.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c5707b5ba54fea5b548d62e097328650.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeraz m\u00f4\u017eeme klikn\u00fa\u0165 na n\u00e1zov prie\u010dinka, vst\u00fapi\u0165 do neho a nahr\u00e1va\u0165 s\u00fabory:<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/ead320e587e1d161e2cd54a94b4ea0d4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA kliknut\u00edm na n\u00e1zov s\u00faboru \u2014 z\u00edska\u0165 ho <i>URL<\/i> na pou\u017eitie v na\u0161om bote, a vo v\u0161eobecnosti \u2014 kdeko\u013evek (ale, nezverej\u0148ujte ho <i>URL<\/i> bez potreby, preto\u017ee prev\u00e1dzka z <i>Objektov\u00e9ho ukladania<\/i> sa spoplat\u0148uje).<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/07a833430b0584161423f363f6685306.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTak, a to je v\u0161etko oh\u013eadom <i>Objektov\u00e9ho ukladania<\/i>. Teraz budete vedie\u0165, \u010do robi\u0165, ke\u010f uvid\u00edte v\u00fdzvu na nahranie s\u00faborov.<\/p>\n<h2>Webhook<\/h2>\n<p>\nTeraz nain\u0161talujeme <i>webhook<\/i> \u2014 t.j. ke\u010f bot dostane aktualiz\u00e1ciu (napr\u00edklad, spr\u00e1vu od pou\u017e\u00edvate\u013ea), zo servera <i>Telegram<\/i> sa do na\u0161ich <i>Yandex funkciu<\/i> za\u0161le po\u017eiadavka (<i>request<\/i>) s \u00fadajmi. Tu je re\u0165azec, ktor\u00fd m\u00f4\u017eete jednoducho skop\u00edrova\u0165 do adresn\u00e9ho po\u013ea prehliada\u010da a potom obnovi\u0165 str\u00e1nku (to je potrebn\u00e9 urobi\u0165 len raz): <code>https:\/\/api.telegram.org\/bot{bot_token}\/setWebHook?url={webhook_url}<\/code><br \/>\nLen nahrad\u00edme <i>{bot_token}<\/i> tokenom, ktor\u00fd sme dostali od bota-otca pri vytv\u00e1ran\u00ed n\u00e1\u0161ho bota, a <i>{webhook_url}<\/i> \u2014 na <i>URL<\/i> na\u0161ich <i>Yandex-funkcie<\/i>. Chv\u00ed\u013eku! Ale ve\u010f <i>RosKomCenzur<\/i> zakazuje poskytovate\u013eom v SR obsluhova\u0165 adresu <code>https:\/\/api.telegram.org<\/code>. \u00c1no, spr\u00e1vne. Ale nie\u010do vymyslite. Ve\u010f sa m\u00f4\u017eete napr\u00edklad op\u00fdta\u0165 svojej babi\u010dky na Ukrajine, v Izraeli alebo Kanade \u2014 tam nie s\u00fa \u017eiadne 'rusk\u00e9 cenz\u00fary', a len Boh vie, ako \u013eudia \u017eij\u00fa bez toho. Nakoniec, po\u017eiadavka-odpove\u010f pri nastavovan\u00ed webhooku by mala vyzera\u0165 takto:<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/713834a1665520d3e471cd3d1831ac06.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTestujeme. Malo by 'zrkadli\u0165'.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ab0e97f9b0ca06295fe7f5f793aab2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA je to. Na\u0161e gratul\u00e1cie \u2014 teraz <i>Yandex funkcia<\/i> sa stala <i>Telegram<\/i>-botom!<\/p>\n<h2>Inteligentn\u00e9 My\u0161lienky<\/h2>\n<p>\nA teraz rob\u00edme U\u010den\u00e9 My\u0161lienky. K\u00f3d je otvoren\u00fd a nach\u00e1dza sa na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>GitHub<\/i><\/b><\/a><\/noindex>. Je dobre okomentovan\u00fd a m\u00e1 len stovku riadkov. \u010c\u00edtajte ho ako opern\u00e1 diva libreto! <\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/2ad0e96a2169d0859ccec836f151d3ea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSklonujte projekt a nain\u0161talujte z\u00e1vislosti:<\/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>\nUrobte potrebn\u00e9 zmeny v s\u00fabore <i>index.js<\/i> (volite\u013en\u00e9; m\u00f4\u017eete ni\u010d nemenit). Vytvorte <i>zip<\/i>-arch\u00edv so s\u00faborom <i>index.js<\/i> a prie\u010dinkom <i>node_modules<\/i> vn\u00fatri, napr\u00edklad s n\u00e1zvom <i>smart.zip<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c8c97707515338a01f8b8ed7f743c4a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeraz prejdite v konzole na na\u0161u <i>Yandex-funkcie<\/i>, vyberte kartu <i>ZIP-arch\u00edv<\/i>, kliknite na tla\u010didlo <i>Vybra\u0165 s\u00fabor<\/i>, a nahrajte n\u00e1\u0161 arch\u00edv <i>smart.zip<\/i>. Nakoniec v pravom hornom rohu kliknite na tla\u010didlo <i>Vytvori\u0165 verziu<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/96634c132848278ecc00a509e61b13f0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nO nieko\u013eko sek\u00fand, ke\u010f sa funkcia aktualizuje, op\u00e4\u0165 otestujeme n\u00e1\u0161ho bota. Teraz u\u017e nezrkadl\u00ed, ale poskytuje inteligentn\u00e9 my\u0161lienky!<\/p>\n<p><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/0c683826b5ef2bdbbd0253de4691900a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa dnes je to v\u0161etko. \u010eal\u0161ie \u010dl\u00e1nky bud\u00fa nasledova\u0165. Kto m\u00e1 z\u00e1ujem o podobn\u00e9 t\u00e9my \u2014 prihl\u00e1ste sa na upozornenia na nov\u00e9 \u010dl\u00e1nky. Prihl\u00e1si\u0165 sa m\u00f4\u017eete tu, alebo na <i>Telegram<\/i>-kan\u00e1l <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/it_tutorial_zahar\"><i>IT Tutori\u00e1l Zachar<\/i><\/a><\/noindex>, alebo <i>Twitter<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/mikezaharov\"><i>@mikezaharov<\/i><\/a><\/noindex>.<\/p>\n<h2>Odkazy<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>K\u00f3d na GitHub<\/i><\/b><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/docs\/functions\/\"><b><i>Yandex Cloud Functions<\/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: \u00davod pre v\u00fdvoj\u00e1rov<\/i><\/b><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/core.telegram.org\/bots\/api\"><b><i>Telegram Bot API<\/i><\/b><\/a><\/noindex><\/p>\n<h2>Dary<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/yasobe.ru\/na\/vui\"><img decoding=\"async\" alt=\"Stav\u00edme Telegram-bota v Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/250f8765713080fcbbdaf56c04dc882f.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Zdroj: <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.4 - 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\/sk\/blog\/stroim-telegram-bot-v-yandeks-oblake\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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\udd47Stav\u00edme Telegram-bota v Yandex.Cloud | ProHoster","description":"Dnes z dostupn\u00fdch materi\u00e1lov zostav\u00edme.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/stroim-telegram-bot-v-yandeks-oblake","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/41315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=41315"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/41316"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}