{"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\/de\/blog\/stroim-telegram-bot-v-yandeks-oblake","title":{"rendered":"Wir erstellen einen Telegram-Bot in Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/4a758744e4fc6bc797d270fa1bc42ef3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHeute werden wir aus einfachen Materialien in <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/\"><i>Yandex.Cloud<\/i><\/a><\/noindex> <i>Telegram-Bot<\/i> geschrieben und verwendet <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/functions\"><i>Yandex Cloud Functions<\/i><\/a><\/noindex> (oder <i>Yandex-Funktionen<\/i> \u2014 um es kurz zu machen) und <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/storage\"><i>Yandex Object Storage<\/i><\/a><\/noindex> (oder <i>Objektspeicher<\/i> \u2014 zur Klarheit). Der Code wird in <i>Node.js<\/i>. Allerdings gibt es ein pikantes Detail \u2014 eine Organisation namens, sagen wir mal, <i>Roskomnadzor<\/i> (Zensur ist durch Artikel 29 der Verfassung der Russischen F\u00f6deration verboten), erlaubt es Internetanbietern in Russland nicht, Anfragen an die <i>Telegram API<\/i> unter der Adresse: <code>https:\/\/api.telegram.org\/<\/code>. Nun werden wir das auch nicht machen \u2014 wenn es nicht geht, dann geht es nicht. Schlie\u00dflich haben wir in unserem Koffer das sogenannte <i>Webhook<\/i> \u2014 damit stellen wir keine Anfragen an eine bestimmte Adresse, sondern senden nur unsere Anfrage als Antwort auf jede Anfrage an uns. Das hei\u00dft, wie in Odessa \u2014 wir antworten mit einer Frage auf eine Frage. Daher <i>Telegram API<\/i> wird in unserem Code nicht vorkommen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Haftungsausschluss<\/b><i>Die in diesem Artikel erw\u00e4hnten Namen staatlicher Organisationen sind fiktiv, und m\u00f6gliche \u00dcbereinstimmungen mit den Namen real existierender Organisationen sind zuf\u00e4llig. <\/i> <\/p>\n<p>Also werden wir einen Bot erstellen, der uns mit klugen Gedanken versorgt. Genau wie auf dem Bild:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/SmartThoughtsBot\"><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/6b7aca248999621a20f8a0ec29e75c75.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Sie k\u00f6nnen ihn in der Praxis testen \u2014 hier ist der Name: <b><i>@SmartThoughtsBot<\/i><\/b>Beachten Sie die Schaltfl\u00e4che <i>\u201eAlises F\u00e4higkeit\u201c<\/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>von Alises F\u00e4higkeit<\/i>, d.h. sie erf\u00fcllt die gleichen Funktionen wie <i>Alises F\u00e4higkeit<\/i> und m\u00f6glicherweise k\u00f6nnen sie harmonisch koexistieren und sich gegenseitig bewerben. Wie man einen <i>F\u00e4higkeit \u201eIntelligente Gedanken\u201c<\/i> wird im Artikel beschrieben <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465275\/\"><b><i>Alisa erwirbt eine F\u00e4higkeit<\/i><\/b><\/a><\/noindex>. Jetzt (nach einigen \u00c4nderungen nach der Ver\u00f6ffentlichung des genannten Artikels) wird diese <i>F\u00e4higkeit<\/i> ungef\u00e4hr so aussehen:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/alice.ya.ru\/s\/f785af07-4578-4a6b-95ae-485bd803ae20\"><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/e92c340f8d947ba9252e0fcab0511ce6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Erstellen eines Bots<\/h2>\n<p>\nIch hoffe, dass dieses Tutorial f\u00fcr alle n\u00fctzlich ist, einschlie\u00dflich der Anf\u00e4nger, die \u201eBots erstellen\u201c. Daher werde ich in diesem Abschnitt recht detailliert beschreiben, wie man \u00fcberhaupt in <i>Telegram<\/i>&#8216;\u0435 \u0431\u043e\u0442\u043e\u0432. \u0414\u043b\u044f \u0442\u0435\u0445 \u043a\u043e\u043c\u0443 \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u0435 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u043c. <\/p>\n<p>\u00d6ffnen Sie die Anwendung <i>Telegram<\/i>, rufen Sie den Vater aller Bots (bei ihnen ist alles wie bei Menschen) \u2014 <b><i>@BotFather<\/i><\/b> \u2014 und geben Sie ihm zu Beginn den Befehl \/help, um sich ins Ged\u00e4chtnis zu rufen, was wir tun k\u00f6nnen. Jetzt interessiert uns der Befehl <i>\/newbot<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/12a0e84dd712e0c74dee0463f1b44e74.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDa der hier beschriebene Bot bereits erstellt wurde, werde ich zu Demonstrationszwecken vor\u00fcbergehend einen anderen Bot erstellen (den ich sp\u00e4ter l\u00f6schen werde). Ich nenne ihn <i>DemoHabrBot<\/i>. Alle Namen (<i>Benutzername<\/i>) aller Telegram-Bots m\u00fcssen mit dem Wort enden <i>bot<\/i>, zum Beispiel: <i>MyCoolBot<\/i> oder <i>my_cool_bot<\/i> \u2014 das ist f\u00fcr Bots. Zuerst geben wir dem Bot einen Namen (<i>name<\/i>) \u2014 und das ist f\u00fcr Menschen. Der Name kann in jeder Sprache sein, Leerzeichen enthalten und muss nicht mit einem Wort enden <i>bot<\/i>, und er muss sogar nicht einzigartig sein. In diesem Beispiel habe ich diesen Bot genannt <i>Demo Habr<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/682ecf64724cabcfef96639d6de87521.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJetzt w\u00e4hlen wir einen Namen f\u00fcr den Bot (<i>Benutzername<\/i>, der f\u00fcr Bots gedacht ist). Nennen wir ihn <i>DemoHabrBot<\/i>. Alles, was mit dem Namen des Bots zu tun hat (<i>name<\/i>) hat nichts mit seinem Namen zu tun \u2014 <i>Benutzername<\/i> (oder hat damit zu tun, aber genau entgegengesetzt). Nach der erfolgreichen Erstellung eines einzigartigen Botnamens m\u00fcssen wir das Token kopieren und aufbewahren (unter strengster Geheimhaltung!), das auf dem Screenshot mit dem roten Pfeil gezeigt wird. Damit werden wir sp\u00e4ter den Webhook aus <i>Telegram<\/i>&#8216;\u0430 \u0432\u0435\u0431\u0445\u0443\u043a \u043d\u0430 \u043d\u0430\u0448\u0443 <i>Yandex-Funktion<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/78254946c9f763d212a1952bac6c706f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJetzt geben wir dem Vater aller Bots den Befehl: <i>\/mybots<\/i>, und er zeigt uns die Liste aller von uns erstellten Bots. Lassen Sie den frisch erstellten Bot <i>Demo Habr<\/i> vorerst in Ruhe (er wurde erstellt, um zu zeigen, wie man Bots erstellt, aber wir werden ihn heute noch f\u00fcr andere Demonstrationszwecke verwenden), und betrachten wir den Bot <i>Schlaue Gedanken<\/i> (<i>@SmartThoughtsBot<\/i>). Im Bots Fenster klicken wir auf den Button mit seinem Namen.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/98434725cb0d7441ec5f2552b0b508a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHier k\u00f6nnen wir unseren Bot konfigurieren. Klicken Sie auf die Schaltfl\u00e4che <i>Edit&#8230;<\/i> Wir werden mit der Bearbeitung einer bestimmten Option fortfahren. Zum Beispiel, indem wir auf die Schaltfl\u00e4che klicken <i>Name bearbeiten<\/i> wir k\u00f6nnen den Namen des Bots \u00e4ndern, sagen wir statt <i>Schlaue Gedanken<\/i>, schreiben wir <i>Abstruse Ideen<\/i>. <i>Botpic<\/i> \u2014 ist das Avatar des Bots, und sollte mindestens <i>150 x 150 px<\/i>. <i>Beschreibung<\/i> \u2014 ist eine kurze Beschreibung, die der Benutzer beim ersten Start des Bots sieht, als Antwort auf die Frage: <i>Was kann dieser Bot tun?<\/i> <i>\u00dcber<\/i> \u2014 eine noch k\u00fcrzere Beschreibung, die mit einem Link zum Bot \u00fcbermittelt wird (<code>https:\/\/t.me\/SmartThoughtsBot<\/code>) oder beim Anzeigen von Informationen \u00fcber ihn.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f15ba92be1bfea827273f79616bd2a3a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJetzt m\u00fcssen wir nur noch die Befehle einstellen. Dazu dr\u00fccken wir die Schaltfl\u00e4che <i>Befehle bearbeiten<\/i>. Zur Standardisierung der Benutzerpraxis <i>Telegram<\/i> wird empfohlen, immer zwei Befehle zu verwenden: <i>\/start<\/i> und <i>\/help<\/i>, und wenn der Bot Anpassungen ben\u00f6tigt \u2013 einen zus\u00e4tzlichen Befehl \/settings. Unser Bot ist so einfach wie ein Ball, daher sind momentan keine Einstellungen n\u00f6tig. Wir schreiben die ersten beiden Befehle auf, die wir sp\u00e4ter im Code bearbeiten werden. Jetzt, wenn der Benutzer ein Slash (Schr\u00e4gstrich: \/) in das Eingabefeld eingibt, erscheint eine Liste von Befehlen zur schnellen Auswahl. Alles wie im Bild: links \u2013 wir setzen die Befehle \u00fcber den Bot-Vater; rechts sind diese Befehle bereits den Benutzern in unserem Bot verf\u00fcgbar.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in 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>\nJetzt, da unser Bot erstellt wurde, gehen wir zu <i>Yandex.Cloud<\/i>, um eine Funktion zu erstellen, die den Code unseres Bots ausf\u00fchrt. Falls Sie noch nicht mit <i>Yandex.Cloud<\/i> gearbeitet haben, lesen Sie das Material <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464739\/\"><b><i>Alice im Land von Bitrix<\/i><\/b><\/a><\/noindex>, und dann\u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/440374\/\"><b><i>Yandex-Funktionen versenden E-Mails<\/i><\/b><\/a><\/noindex>. Ich bin mir fast sicher, dass diese beiden relativ kurzen Artikel ausreichend sind, um ein grundlegendes Verst\u00e4ndnis des Themas zu erlangen.<\/p>\n<p>Also w\u00e4hlen Sie im <i>Yandex.Cloud<\/i> im linken Navigationsmen\u00fc den Punkt <i>Cloud Functions<\/i>, und klicken dann auf die Schaltfl\u00e4che <i>Funktion erstellen<\/i>. Geben Sie ihr einen Namen und eine kurze Beschreibung f\u00fcr sich selbst.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/67f313c60481c5ef84af8a28b4934621.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNach dem Klicken auf die Schaltfl\u00e4che <i>Erstellen Sie<\/i> und nach ein paar Sekunden wird die neue Funktion in der Liste aller Funktionen erscheinen. Klicken Sie auf ihren Namen\u2014das bringt uns zur Seite <i>\u00dcbersicht<\/i> unserer Funktion. Hier m\u00fcssen Sie den Schalter (<i>Ein<\/i>) f\u00fcr <i>\u00d6ffentliche Funktion<\/i>aktivieren, damit sie von der Au\u00dfenwelt (f\u00fcr <i>Yandex.Cloud<\/i>) zug\u00e4nglich ist, und die Werte der Felder <i>Aufruf-URL<\/i> und <i>Identifikator<\/i> \u2014 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0439 \u0442\u0430\u0439\u043d\u0435 \u043e\u0442 \u0432\u0441\u0435\u0445 \u043a\u0440\u043e\u043c\u0435 \u0441\u0435\u0431\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u0438 Telegram&#8217;a, \u0447\u0442\u043e\u0431\u044b \u0432\u0430\u0448\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0430\u0444\u0435\u0440\u0438\u0441\u0442\u044b.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ba45d357965d567ba33ab0ee65d2eb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJetzt wechseln wir mit dem linken Men\u00fc zu <i>Editor<\/i> Funktionen. Lassen Sie uns vorerst unsere <i>Schlaue Gedanken<\/i>, und erstellen wir eine minimale Vorlagenfunktion, um die Funktionalit\u00e4t unseres Bots zu \u00fcberpr\u00fcfen\u2026 Im Grunde genommen ist diese Funktion in diesem Kontext unser Bot\u2026 Kurz gesagt, hier und jetzt erstellen wir einen einfachen Bot, der Benutzeranfragen \u201espiegelt\u201c (d.h. zur\u00fccksendet). Diese Vorlage kann immer beim Erstellen neuer Telegram-Bots verwendet werden, um sicherzustellen, dass die Verbindung zu <i>Telegram&#8217;<\/i>normal funktioniert. Klicken Sie auf <i>Datei erstellen<\/i>, benennen Sie sie <i>index.js<\/i>, und f\u00fcgen Sie im Online <i>Code-Editor<\/i> den folgenden Code in diese Datei ein:<\/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>\nIn der Yandex.Cloud-Konsole sollte es ungef\u00e4hr so aussehen:<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f0204be84468c9ae7ec1b9e4ca0dfdd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDarunter geben wir <i>den Endpunkt<\/i> \u2014 <i>index.bot<\/i>, wobei <i>index<\/i> das ist der Name der Datei (<i>index.js<\/i>), und <i>bot<\/i> \u2014 der Name der Funktion (<i>module.exports.bot<\/i>). Alle anderen Felder lassen wir \u201ewie sie sind\u201c, und klicken oben rechts auf die Schaltfl\u00e4che <i>Version erstellen<\/i>. In wenigen Sekunden wird diese Funktionsversion erstellt. Bald nach den Tests <i>Webhook<\/i>, werden wir eine neue Version erstellen \u2014 <i>Schlaue Gedanken<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/48cd898f83bdc29d124600828bf2143f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Objektspeicher<\/h2>\n<p>\nJetzt, wo wir eine erstellt haben <i>Yandex-Funktion<\/i>, lassen Sie uns, w\u00e4hrend wir in der Konsole sind <i>Yandex.Cloud<\/i>, einen sogenannten Bucket (<i>bucket<\/i>, also ein Eimer auf Deutsch, definitiv kein Strau\u00df) zum Speichern von Bilddateien erstellen, die in unserem Bot verwendet werden <i>Schlaue Gedanken<\/i>. Im linken Navigationsmen\u00fc w\u00e4hlen wir den Punkt <i>Object Storage<\/i>, klicken auf die Schaltfl\u00e4che <i>Bucket erstellen<\/i>, denken uns einen Namen aus, zum Beispiel <i>img-bucket<\/i>, und das Wichtigste, <i>Zugriff auf Objekt lesen<\/i> \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c \u2014 \u0438\u043d\u0430\u0447\u0435 Telegram&#8217;\u0443 \u043d\u0430\u0448\u0438\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u043d\u0435 \u0432\u0438\u0434\u0430\u0442\u044c. \u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 <i>Bucket erstellen<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c890a42f7d043e03300434b2c4a0258b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDanach k\u00f6nnte die Liste aller Buckets ungef\u00e4hr so aussehen (wenn dies Ihr einziger Bucket ist):<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/34701231536742a7889b200ff49b08b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIch schlage vor, auf den Namen des Buckets zu klicken und darin einen Ordner zu erstellen, um die Speicherung von Bildern f\u00fcr verschiedene Anwendungen zu organisieren. Zum Beispiel f\u00fcr den Telegram-Bot <i>Schlaue Gedanken<\/i> habe ich einen Ordner mit dem Namen <i>tg-bot-smart-thoughts<\/i> erstellt (keine Sorge, ich verstehe diesen Code). Erstellen Sie auch einen.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c5707b5ba54fea5b548d62e097328650.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJetzt k\u00f6nnen Sie auf den Namen des Ordners klicken, ihn \u00f6ffnen und Dateien hochladen:<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/ead320e587e1d161e2cd54a94b4ea0d4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnd durch Klicken auf den Dateinamen erhalten Sie dessen <i>URL<\/i> zur Nutzung in unserem Bot, und eigentlich \u00fcberall (aber ver\u00f6ffentlichen Sie das nicht <i>URL<\/i> ohne Notwendigkeit, da der Datenverkehr von <i>Objektspeicher<\/i> berechnet wird).<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/07a833430b0584161423f363f6685306.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas ist im Grunde alles zu <i>Objektspeicher<\/i>. Jetzt wissen Sie, was zu tun ist, wenn Sie aufgefordert werden, Dateien dort hochzuladen.<\/p>\n<h2>Webhook<\/h2>\n<p>\nJetzt richten wir den <i>Webhook<\/i> ein \u2013 d.h. wenn der Bot ein Update erh\u00e4lt (zum Beispiel eine Nachricht von einem Benutzer), wird vom Server <i>Telegram<\/i> an unser <i>Yandex-Funktion<\/i> eine Anfrage (<i>request<\/i>) mit den Daten gesendet. Hier ist die Zeile, die Sie einfach in die Adressleiste Ihres Browsers einf\u00fcgen und die Seite dann aktualisieren k\u00f6nnen (das muss nur einmal geschehen): <code>https:\/\/api.telegram.org\/bot{bot_token}\/setWebHook?url={webhook_url}<\/code><br \/>\nErsetzen wir nur <i>{bot_token}<\/i> durch das Token, das wir vom Bot-Vater bei der Erstellung unseres Bots erhalten haben, und <i>{webhook_url}<\/i> durch <i>URL<\/i> unserem <i>Yandex-Funktionen<\/i>. Einen Moment! Aber <i>Roskomnadzor<\/i> verhindert es, dass Anbieter in der RF diese Adresse bedienen. <code>https:\/\/api.telegram.org<\/code>. Ja, das stimmt. Aber Sie denken sich etwas aus. Sie k\u00f6nnten zum Beispiel Ihre Gro\u00dfmutter in der Ukraine, Israel oder Kanada bitten \u2013 dort gibt es keine \u201eRussischen Zensuren\u201c, und nur Gott wei\u00df, wie die Menschen ohne so etwas leben. Letztendlich sollte die Anfrage-Antwort beim Einrichten des Webhooks so aussehen:<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/713834a1665520d3e471cd3d1831ac06.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTesten wir. Es sollte \u201espiegeln\u201c.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ab0e97f9b0ca06295fe7f5f793aab2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas stimmt. Unsere Gl\u00fcckw\u00fcnsche \u2013 jetzt <i>Yandex-Funktion<\/i> ist es <i>Telegram<\/i>-Bot!<\/p>\n<h2>Schlaue Gedanken<\/h2>\n<p>\nJetzt erstellen wir Smarte Gedanken. Der Code ist offen und liegt unter <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>GitHub<\/i><\/b><\/a><\/noindex>. Er ist recht gut kommentiert und umfasst nur etwa hundert Zeilen. Lesen Sie ihn wie ein Libretto einer Operndiva! <\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/2ad0e96a2169d0859ccec836f151d3ea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKlonen Sie das Projekt und installieren Sie die Abh\u00e4ngigkeiten:<\/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>\nNehmen Sie die notwendigen \u00c4nderungen in die Datei vor <i>index.js<\/i> (optional; Sie k\u00f6nnen auch nichts \u00e4ndern). Erstellen Sie <i>eine ZIP<\/i>-Archive mit der Datei <i>index.js<\/i> und dem Ordner <i>node_modules<\/i> darinnen, zum Beispiel unter dem Namen <i>smart.zip<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c8c97707515338a01f8b8ed7f743c4a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGehen Sie nun im Terminal zu unserem <i>Yandex-Funktionen<\/i>, w\u00e4hlen Sie den Reiter <i>ZIP-Archiv<\/i>, klicken Sie auf die Schaltfl\u00e4che <i>Datei ausw\u00e4hlen<\/i>, und laden Sie unser Archiv <i>smart.zip<\/i>hoch. Schlie\u00dflich klicken Sie oben rechts auf die Schaltfl\u00e4che <i>Version erstellen<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/96634c132848278ecc00a509e61b13f0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNach ein paar Sekunden, wenn die Funktion aktualisiert wird, testen wir unseren Bot erneut. Jetzt spiegelt er nicht mehr, sondern liefert schlaue Gedanken!<\/p>\n<p><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/0c683826b5ef2bdbbd0253de4691900a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas war's f\u00fcr heute. Weitere Artikel folgen. Wer an \u00e4hnlichen Inhalten interessiert ist, kann sich hier f\u00fcr Benachrichtigungen \u00fcber neue Artikel anmelden, oder auf <i>Telegram<\/i>-Kanal <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/it_tutorial_zahar\"><i>IT Tutorial Zachar<\/i><\/a><\/noindex>, oder <i>Twitter<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/mikezaharov\"><i>@mikezaharov<\/i><\/a><\/noindex>.<\/p>\n<h2>Links<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>Code auf 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: Eine Einf\u00fchrung f\u00fcr Entwickler<\/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>Spenden<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/yasobe.ru\/na\/vui\"><img decoding=\"async\" alt=\"Wir erstellen einen Telegram-Bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/250f8765713080fcbbdaf56c04dc882f.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Quelle: <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 4.9.10 - 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 \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\" \/>\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\/de\/blog\/stroim-telegram-bot-v-yandeks-oblake\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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 \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/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\udd47Wir bauen einen Telegram-Bot in Yandex.Cloud | ProHoster","description":"Heute werden wir aus verf\u00fcgbaren Materialien im Yandex.Cloud einen Telegram-Bot unter Verwendung von Yandex Cloud Functions (kurz Yandex-Funktionen) und Yandex Object Storage (zur Klarheit: Objekt-Speicher) erstellen. Der Code wird in Node.js geschrieben. Es gibt jedoch eine pikante Besonderheit \u2014 eine Organisation, die wir der Einfachheit halber RossKomZenzur nennen (Zensur ist durch Artikel 29 der Verfassung der Russischen F\u00f6deration verboten), erlaubt es Internetanbietern nicht,","canonical_url":"https:\/\/prohoster.info\/de\/blog\/stroim-telegram-bot-v-yandeks-oblake","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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 \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","og:url":"https:\/\/prohoster.info\/de\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/41315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=41315"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/41316"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}