{"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\/sv\/blog\/stroim-telegram-bot-v-yandeks-oblake","title":{"rendered":"Bygger en Telegram-bot i Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/4a758744e4fc6bc797d270fa1bc42ef3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIdag kommer vi att samla i <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/\"><i>Yandex.Cloud<\/i><\/a><\/noindex> <i>Telegram-bot<\/i> med hj\u00e4lp av <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/functions\"><i>Yandex Cloud Functions<\/i><\/a><\/noindex> (eller <i>Yandex-funktioner<\/i> \u2014 f\u00f6r korthet) och <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/storage\"><i>Yandex Object Storage<\/i><\/a><\/noindex> (eller <i>Objektlagring<\/i> \u2014 f\u00f6r tydlighet). Koden kommer att vara p\u00e5 <i>Node.js<\/i>. Men det finns en pikant omst\u00e4ndighet \u2014 en organisation som vi kan kalla <i>RossComCensorship<\/i> (censur f\u00f6rbjuden enligt artikel 29 i Rysslands konstitution) till\u00e5ter inte internetleverant\u00f6rer i Ryssland att vidarebefordra f\u00f6rfr\u00e5gningar till <i>Telegram API<\/i> p\u00e5 adressen: <code>https:\/\/api.telegram.org\/<\/code>. N\u00e5ja, vi kommer att avst\u00e5 \u2014 om det inte finns, s\u00e5 finns det inte. F\u00f6r i v\u00e5r v\u00e4ska har vi de s\u00e5 kallade <i>webhooks<\/i> \u2014 med hj\u00e4lp av dem g\u00f6r vi inga specifika f\u00f6rfr\u00e5gningar, utan skickar bara v\u00e5r f\u00f6rfr\u00e5gan som svar p\u00e5 vilken f\u00f6rfr\u00e5gan som helst till oss. Det vill s\u00e4ga, som i Odessa \u2014 vi svarar med en fr\u00e5ga p\u00e5 en fr\u00e5ga. D\u00e4rf\u00f6r <i>Telegram API<\/i> kommer inte att figurerar i v\u00e5r kod.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Disclaimer<\/b><i>De n\u00e4mnda namnen p\u00e5 statliga organisationer i denna artikel \u00e4r fiktiva och eventuella likheter med namnen p\u00e5 verkligt existerande organisationer \u00e4r slumpm\u00e4ssiga. <\/i> <\/p>\n<p>S\u00e5, vi kommer att g\u00f6ra en bot som ger oss kloka tankar. Precis som p\u00e5 bilden:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/SmartThoughtsBot\"><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/6b7aca248999621a20f8a0ec29e75c75.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Du kan prova den i praktiken \u2014 h\u00e4r \u00e4r namnet: <b><i>@SmartThoughtsBot<\/i><\/b>. La du m\u00e4rke till knappen <i>\u00abAlisas f\u00e4rdighet\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>Alisa's f\u00e4rdighet<\/i>, det vill s\u00e4ga, den utf\u00f6r samma funktioner som <i>Alisa's f\u00e4rdighet<\/i> och m\u00f6jligtvis kan de samexistera fredligt och marknadsf\u00f6ra varandra. Om hur man skapar <i>f\u00e4rdigheten Kloka Tankar<\/i> ber\u00e4ttas i artikeln <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465275\/\"><b><i>Alisa f\u00e5r en f\u00e4rdighet<\/i><\/b><\/a><\/noindex>. Just nu (efter att ha gjort n\u00e5gra \u00e4ndringar efter publiceringen av den n\u00e4mnda artikeln) kommer den h\u00e4r <i>f\u00e4rdigheten<\/i> att se ut ungef\u00e4r s\u00e5 h\u00e4r p\u00e5 smartphone:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/alice.ya.ru\/s\/f785af07-4578-4a6b-95ae-485bd803ae20\"><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/e92c340f8d947ba9252e0fcab0511ce6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Skapa en bot<\/h2>\n<p>\nJag skulle vilja att den h\u00e4r guiden \u00e4r till nytta f\u00f6r alla, inklusive nyb\u00f6rjare i \"bot-byggande\". D\u00e4rf\u00f6r kommer jag att beskriva i detalj hur man skapar i <i>Telegram<\/i>\u2019e bots. F\u00f6r dem som inte beh\u00f6ver denna information \u2014 g\u00e5 vidare till f\u00f6ljande avsnitt. <\/p>\n<p>\u00d6ppna appen <i>Telegram<\/i>, kalla p\u00e5 alla bots fader (de verkar som m\u00e4nniskor) \u2014 <b><i>@BotFather<\/i><\/b> \u2014 och ge honom kommandot \/help f\u00f6r att friska upp minnet om vad vi kan g\u00f6ra. Just nu kommer vi att vara intresserade av kommandot <i>\/newbot<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/12a0e84dd712e0c74dee0463f1b44e74.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEftersom den bot som beskrivs h\u00e4r redan \u00e4r skapad, f\u00f6r demonstrations\u00e4ndam\u00e5l kommer jag att skapa en annan bot f\u00f6r en kort tid (sedan tar jag bort den). Jag kommer att kalla den <i>DemoHabrBot<\/i>. Namnen (<i>username<\/i>) p\u00e5 alla Telegram-bots m\u00e5ste sluta med ordet <i>bot<\/i>, till exempel: <i>MyCoolBot<\/i> eller <i>my_cool_bot<\/i> \u2014 detta \u00e4r f\u00f6r bots. Men f\u00f6rst ger vi boten ett namn (<i>name<\/i>) \u2014 och detta \u00e4r f\u00f6r m\u00e4nniskor. Namnet kan vara p\u00e5 vilket spr\u00e5k som helst, inneh\u00e5lla mellanslag, och beh\u00f6ver inte sluta med ett specifikt ord <i>bot<\/i>, och det beh\u00f6ver inte ens vara unikt. I detta exempel kallade jag denna bot <i>Demo Habr<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/682ecf64724cabcfef96639d6de87521.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNu v\u00e4ljer vi ett namn f\u00f6r boten (<i>username<\/i>, det som \u00e4r f\u00f6r botar). L\u00e5t oss kalla den <i>DemoHabrBot<\/i>. Allt som r\u00f6r botens namn (<i>name<\/i>) har inget att g\u00f6ra med dess identitet \u2014 <i>username<\/i> (eller har, men precis tv\u00e4rtom). Efter att vi framg\u00e5ngsrikt har skapat ett unikt namn f\u00f6r boten m\u00e5ste vi kopiera och spara (i st\u00f6rsta hemlighet!) token som visas p\u00e5 sk\u00e4rmdumpen med den r\u00f6da pilen. Med hj\u00e4lp av den kommer vi lite senare att st\u00e4lla in utg\u00e5ende <i>Telegram<\/i>\u2019a webhook till v\u00e5r <i>Yandex-funktion<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/78254946c9f763d212a1952bac6c706f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOch nu ger vi kommandot till fadern av alla botar: <i>\/mybots<\/i>, och han visar oss listan \u00f6ver alla botar som vi har skapat. L\u00e5t oss \u00e4n s\u00e5 l\u00e4nge l\u00e4mna den nyskapade boten <i>Demo Habr<\/i> (den skapades f\u00f6r att visa hur man skapar botar, men vi kommer att anv\u00e4nda den f\u00f6r andra demonstrations\u00e4ndam\u00e5l senare idag), och titta p\u00e5 boten <i>Smart Tankar<\/i> (<i>@SmartThoughtsBot<\/i>). Vi klickar p\u00e5 knappen med botens namn i botlistan.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/98434725cb0d7441ec5f2552b0b508a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nH\u00e4r kan vi konfigurera v\u00e5r bot. Genom att trycka p\u00e5 knappen <i>Redigera\u2026<\/i> g\u00e5r vi till redigering av en viss option. Till exempel, genom att trycka p\u00e5 knappen <i>Edit Name<\/i> kan vi \u00e4ndra botens namn, s\u00e4g ist\u00e4llet f\u00f6r <i>Smart Tankar<\/i>, skriva <i>Kraftfulla Id\u00e9er<\/i>. <i>Botpic<\/i> \u2014 detta \u00e4r botens avatar, b\u00f6r vara minst <i>150 x 150 px<\/i>. <i>Beskrivning<\/i> \u2014 detta \u00e4r en kort beskrivning som anv\u00e4ndaren ser vid f\u00f6rsta anv\u00e4ndningen av boten, som svar p\u00e5 fr\u00e5gan: <i>Vad kan denna bot g\u00f6ra?<\/i> <i>Om<\/i> \u2014 en \u00e4nnu kortare beskrivning som \u00f6verf\u00f6rs med l\u00e4nken till boten (<code>https:\/\/t.me\/SmartThoughtsBot<\/code>) eller vid visning av information om den.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f15ba92be1bfea827273f79616bd2a3a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVi har bara kvar att konfigurera kommandona. F\u00f6r detta trycker vi p\u00e5 knappen <i>Edit Commands<\/i>. F\u00f6r att standardisera anv\u00e4ndarpraksis <i>Telegram<\/i> rekommenderar att alltid anv\u00e4nda tv\u00e5 kommandon: <i>\/start<\/i> och <i>\/help<\/i>, och om boten beh\u00f6ver inst\u00e4llningar \u2014 ett ytterligare kommando \/settings. V\u00e5r bot \u00e4r s\u00e5 enkel som en boll, s\u00e5 han beh\u00f6ver inte n\u00e5gra inst\u00e4llningar f\u00f6r tillf\u00e4llet. Vi skriver in de tv\u00e5 f\u00f6rsta kommandona som vi sedan kommer att behandla i koden. Nu, om anv\u00e4ndaren skriver in ett snedstreck (tecknet \/: \/), kommer en lista med kommandon att dyka upp f\u00f6r snabb valning. Allt som p\u00e5 bilden: till v\u00e4nster \u2014 vi st\u00e4ller in kommandona via fadern av boten; till h\u00f6ger \u00e4r dessa kommandon redan tillg\u00e4ngliga f\u00f6r anv\u00e4ndarna i v\u00e5r bot.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/b536b5fe7b8aad3d68877a7693ea0e6f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Yandex-funktion<\/h2>\n<p>\nNu n\u00e4r v\u00e5r bot \u00e4r skapad, g\u00e5r vi till <i>Yandex.Cloud<\/i>, f\u00f6r att skapa en funktion som kommer att k\u00f6ra koden f\u00f6r v\u00e5r bot. Om du inte har arbetat med <i>Yandex.Cloud<\/i> l\u00e4s materialet <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464739\/\"><b><i>Alice i Bitrix-land<\/i><\/b><\/a><\/noindex>, och sedan \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/440374\/\"><b><i>Yandex-funktioner skickar e-post<\/i><\/b><\/a><\/noindex>. Jag \u00e4r n\u00e4stan s\u00e4ker p\u00e5 att dessa tv\u00e5 relativt korta artiklar \u00e4r tillr\u00e4ckliga f\u00f6r att f\u00e5 en grundl\u00e4ggande f\u00f6rst\u00e5else av \u00e4mnet.<\/p>\n<p>S\u00e5, i konsolen <i>Yandex.Cloud<\/i> i den v\u00e4nstra navigationsmenyn v\u00e4ljer vi alternativet <i>Cloud Functions<\/i>, och klickar sedan p\u00e5 knappen <i>Skapa funktion<\/i>. Ge den ett namn och en kort beskrivning f\u00f6r dig sj\u00e4lv.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/67f313c60481c5ef84af8a28b4934621.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEfter att ha tryckt p\u00e5 knappen <i>Skapa<\/i> och efter ett par sekunder kommer den nya funktionen att dyka upp i listan \u00f6ver alla funktioner. Klicka p\u00e5 dess namn \u2014 detta tar oss till sidan <i>\u00d6versikt<\/i> f\u00f6r v\u00e5r funktion. H\u00e4r m\u00e5ste vi aktivera (<i>On<\/i>) v\u00e4xeln <i>Offentlig funktion<\/i>, s\u00e5 att den blir tillg\u00e4nglig fr\u00e5n externa (f\u00f6r <i>Yandex.Cloud<\/i>) v\u00e4rlden, och v\u00e4rdet av f\u00e4lten <i>L\u00e4nk f\u00f6r anrop<\/i> och <i>Identifierare<\/i> \u2014 att h\u00e5lla djupt hemligt f\u00f6r alla utom dig sj\u00e4lv och Telegram, s\u00e5 att ingen bedragare kan anropa din funktion.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ba45d357965d567ba33ab0ee65d2eb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNu g\u00e5r vi via den v\u00e4nstra menyn till <i>Redakt\u00f6r<\/i> funktionerna. L\u00e5t oss f\u00f6r tillf\u00e4llet l\u00e4gga v\u00e5ra <i>Smart Tankar<\/i>, och skapa en minimal mall-funktion f\u00f6r att testa v\u00e5r bots funktionalitet\u2026 \u00c4nd\u00e5, i detta sammanhang \u00e4r denna funktion v\u00e5r bot\u2026 Kort sagt, just nu och precis h\u00e4r kommer vi att skapa en mycket enkel bot som kommer att \"\u00e5terspegla\" (dvs. skicka tillbaka) anv\u00e4ndarnas f\u00f6rfr\u00e5gningar. Denna mall kan alltid anv\u00e4ndas vid skapandet av nya Telegram-botar f\u00f6r att s\u00e4kerst\u00e4lla att kontakten med <i>Telegram<\/i>funkar som den ska. Klicka p\u00e5 <i>Skapa fil<\/i>, ge den namnet <i>index.js<\/i>, och i den online <i>Kodredigeraren<\/i> klistrar vi in f\u00f6ljande kod i denna fil:<\/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>\nI Yandex.Cloud-konsolen b\u00f6r det se ut n\u00e5got i stil med:<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f0204be84468c9ae7ec1b9e4ca0dfdd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSedan anger vi lite l\u00e4ngre ner <i>Anropspunkt<\/i> \u2014 <i>index.bot<\/i>, d\u00e4r <i>index<\/i> det \u00e4r filnamnet (<i>index.js<\/i>), och <i>bot<\/i> \u2014 funktionsnamnet (<i>module.exports.bot<\/i>). L\u00e5t alla andra f\u00e4lt vara \"som de \u00e4r\", och i det \u00f6vre h\u00f6gra h\u00f6rnet klickar vi p\u00e5 knappen <i>Skapa version<\/i>. Om n\u00e5gra sekunder kommer denna versions funktion att skapas. Snart, efter testning <i>webhook<\/i>, kommer vi att skapa en ny version \u2014 <i>Smart Tankar<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/48cd898f83bdc29d124600828bf2143f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Objektlagring<\/h2>\n<p>\nNu n\u00e4r vi har skapat en <i>Yandex-funktion<\/i>, l\u00e5t oss, medan vi \u00e4r i konsolen <i>Yandex.Cloud<\/i>, skapa en s\u00e5 kallad bucket (<i>bucket<\/i>, det vill s\u00e4ga en hink p\u00e5 ryska, \u00e4r inte en bukett) f\u00f6r att lagra bildfiler som kommer att anv\u00e4ndas i v\u00e5r bot <i>Smart Tankar<\/i>. I den v\u00e4nstra navigeringsmenyn v\u00e4ljer vi <i>Object Storage<\/i>, klicka p\u00e5 knappen <i>Skapa hink<\/i>, t\u00e4nk p\u00e5 ett namn, till exempel <i>img-bucket<\/i>, och viktigast av allt, <i>\u00c5tkomst till objekt<\/i> g\u00f6r offentligt \u2014 annars kommer Telegram aldrig att se v\u00e5ra bilder. Vi l\u00e4mnar alla andra f\u00e4lt of\u00f6r\u00e4ndrade. Tryck p\u00e5 knappen <i>Skapa hink<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c890a42f7d043e03300434b2c4a0258b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEfter detta kan listan \u00f6ver alla hinkar se ut ungef\u00e4r s\u00e5 h\u00e4r (om detta \u00e4r din enda hink):<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/34701231536742a7889b200ff49b08b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNu f\u00f6resl\u00e5r jag att vi klickar p\u00e5 hinkens namn och inne i den skapar en mapp f\u00f6r att organisera lagringen av bilder f\u00f6r olika applikationer. Till exempel f\u00f6r Telegram-boten <i>Smart Tankar<\/i> har jag skapat en mapp som heter <i>tg-bot-smart-thoughts<\/i> (inga problem, jag kommer f\u00f6rst\u00e5 denna kod). Skapa g\u00e4rna en sj\u00e4lv.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c5707b5ba54fea5b548d62e097328650.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNu kan vi klicka p\u00e5 mappens namn, g\u00e5 in i den och ladda upp filer:<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/ead320e587e1d161e2cd54a94b4ea0d4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOch genom att klicka p\u00e5 filnamnet \u2013 f\u00e5 den <i>URL<\/i> f\u00f6r att anv\u00e4nda i v\u00e5r bot, och faktiskt \u2013 var som helst (men publicera inte detta <i>URL<\/i> om det inte beh\u00f6vs, eftersom trafiken fr\u00e5n <i>Objektslagring<\/i> debiteras).<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/07a833430b0584161423f363f6685306.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet var allt om <i>Objektslagring<\/i>. Nu vet du vad du ska g\u00f6ra n\u00e4r du ser en uppmaning att ladda upp filer dit.<\/p>\n<h2>Webhook<\/h2>\n<p>\nNu ska vi st\u00e4lla in <i>webhook<\/i> \u2013 det vill s\u00e4ga n\u00e4r boten f\u00e5r en uppdatering (till exempel ett meddelande fr\u00e5n en anv\u00e4ndare), kommer en beg\u00e4ran att skickas fr\u00e5n servern <i>Telegram<\/i> till v\u00e5r <i>Yandex-funktion<\/i> ({<i>request<\/i>}) med data. H\u00e4r \u00e4r en rad som man enkelt kan klistra in i webbl\u00e4sarens adressf\u00e4lt och sedan uppdatera sidan (detta beh\u00f6ver g\u00f6ras endast en g\u00e5ng): <code>https:\/\/api.telegram.org\/bot{bot_token}\/setWebHook?url={webhook_url}<\/code><br \/>\nVi bara byter ut <i>{bot_token}<\/i> mot token som vi f\u00e5tt fr\u00e5n bot-fadern n\u00e4r vi skapade v\u00e5r bot, och <i>{webhook_url}<\/i> \u2013 till <i>URL<\/i> v\u00e5r <i>Yandex-funktioner<\/i>. V\u00e4nta lite! Men \u00e4r det inte s\u00e5 att <i>RossComCensorship<\/i> f\u00f6rbjuder leverant\u00f6rer i Ryssland att betj\u00e4na adressen <code>https:\/\/api.telegram.org<\/code>. Ja, det st\u00e4mmer. Men kom p\u00e5 n\u00e5got. Man kan ju till exempel be sin mormor i Ukraina, Israel eller Kanada \u2014 d\u00e4r finns inga s\u00e5dana \"russka censurer\", och endast Gud vet hur m\u00e4nniskor lever utan detta. Resultatet \u00e4r att beg\u00e4ran-svar vid inst\u00e4llning av webhooken ska se ut s\u00e5 h\u00e4r:<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/713834a1665520d3e471cd3d1831ac06.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nL\u00e5t oss testa. Det ska \"speglas\".<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ab0e97f9b0ca06295fe7f5f793aab2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u00e5 \u00e4r det. Grattis \u2013 nu \u00e4r du <i>Yandex-funktion<\/i> Detta <i>Telegram<\/i>-bot!<\/p>\n<h2>Smart Tankar<\/h2>\n<p>\nNu skapar vi Smarta Tankar. Koden \u00e4r \u00f6ppen och finns p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>GitHub<\/i><\/b><\/a><\/noindex>. Den \u00e4r ganska bra kommenterad, och den har bara hundra rader. L\u00e4s den som en operas\u00e5ngerska l\u00e4ser librettot! <\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/2ad0e96a2169d0859ccec836f151d3ea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKlonar projektet och installerar beroenden:<\/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>\nG\u00f6r n\u00f6dv\u00e4ndiga \u00e4ndringar i filen <i>index.js<\/i> (valfritt; du beh\u00f6ver inte \u00e4ndra n\u00e5got). Skapa <i>zip<\/i>-arkiv, med filen <i>index.js<\/i> och mappen <i>node_modules<\/i> inuti, till exempel med namnet <i>smart.zip<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c8c97707515338a01f8b8ed7f743c4a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNu g\u00e5r du i konsolen till v\u00e5r <i>Yandex-funktioner<\/i>, v\u00e4lj fliken <i>ZIP-arkiv<\/i>, tryck p\u00e5 knappen <i>V\u00e4lj fil<\/i>, och ladda upp v\u00e5rt arkiv <i>smart.zip<\/i>. Till sist, i det \u00f6vre h\u00f6gra h\u00f6rnet klickar du p\u00e5 knappen <i>Skapa version<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/96634c132848278ecc00a509e61b13f0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOm n\u00e5gra sekunder, n\u00e4r funktionen har uppdaterats, testar vi v\u00e5r bot igen. Nu speglar den inte l\u00e4ngre utan levererar kloka tankar!<\/p>\n<p><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/0c683826b5ef2bdbbd0253de4691900a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet \u00e4r allt f\u00f6r idag. Fler artiklar f\u00f6ljer. Om du \u00e4r intresserad av att l\u00e4sa liknande \u2014 prenumerera p\u00e5 meddelanden om nya artiklar. Du kan prenumerera h\u00e4r, eller p\u00e5 <i>Telegram<\/i>-kanal <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/it_tutorial_zahar\"><i>IT Tutorial Zakhar<\/i><\/a><\/noindex>, eller <i>Twitter<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/mikezaharov\"><i>@mikezaharov<\/i><\/a><\/noindex>.<\/p>\n<h2>L\u00e4nkar<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>Kod p\u00e5 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: En introduktion f\u00f6r utvecklare<\/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>Donations<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/yasobe.ru\/na\/vui\"><img decoding=\"async\" alt=\"Bygger en Telegram-bot i Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/250f8765713080fcbbdaf56c04dc882f.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47Bygger en Telegram-bot i Yandex.Cloud | ProHoster","description":"Idag kommer vi att bygga i.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/stroim-telegram-bot-v-yandeks-oblake","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/41315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=41315"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/41316"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}