{"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\/nl\/blog\/stroim-telegram-bot-v-yandeks-oblake","title":{"rendered":"We bouwen een Telegram-bot in Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/4a758744e4fc6bc797d270fa1bc42ef3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVandaag gaan we met beschikbare materialen in <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/\"><i>Yandex.Cloud<\/i><\/a><\/noindex> <i>een Telegram-bot<\/i> met behulp van <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/functions\"><i>Yandex Cloud Functions<\/i><\/a><\/noindex> (of <i>Yandex-functies<\/i> \u2014 voor de duidelijkheid) en <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/storage\"><i>Yandex Object Storage<\/i><\/a><\/noindex> (of <i>Object Storage<\/i> \u2014 voor de duidelijkheid). De code wordt op <i>Node.js<\/i>. Er is echter \u00e9\u00e9n pikante omstandigheid \u2014 een organisatie met de naam, laten we zeggen, <i>Roskomnadzor<\/i> (censuur is verboden volgens artikel 29 van de Grondwet van de Russische Federatie), staat internetproviders in Rusland niet toe om verzoeken naar <i>de Telegram API<\/i> op het adres: <code>https:\/\/api.telegram.org\/<\/code>. Nou, we zullen dat ook niet doen \u2014 als het er niet is, dan is het er niet. We hebben immers zogenaamde <i>webhooks<\/i> \u2014 daarmee doen we geen verzoeken naar een specifiek adres, maar sturen we simpelweg ons verzoek als reactie op elk verzoek dat we ontvangen. Dat wil zeggen, zoals in Odessa \u2014 we beantwoorden een vraag met een vraag. Daarom <i>de Telegram API<\/i> zal het niet in onze code voorkomen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Disclaimer<\/b><i>De in dit artikel genoemde namen van overheidsorganisaties zijn fictief en eventuele overeenkomsten met de namen van bestaande organisaties zijn toevallig. <\/i> <\/p>\n<p>Dus, we gaan een bot maken die ons zal voorzien van slimme gedachten. Precies zoals op de afbeelding:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/SmartThoughtsBot\"><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/6b7aca248999621a20f8a0ec29e75c75.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Je kunt het in actie proberen \u2014 hier is de naam: <b><i>@SmartThoughtsBot<\/i><\/b>. Heb je de knop <i>\u00abAlice's vaardigheid\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>van de vaardigheid van Alice<\/i>, dat wil zeggen, het vervult dezelfde functies als <i>de vaardigheid van Alice<\/i> en misschien kunnen ze vreedzaam naast elkaar bestaan en elkaar promoten. Hoe je <i>de vaardigheid Slimme Gedachten<\/i> kunt maken, wordt beschreven in het artikel <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465275\/\"><b><i>Alice verwerft de vaardigheid<\/i><\/b><\/a><\/noindex>. Momenteel (na enkele wijzigingen na de publicatie van het bovengenoemde artikel) zal deze <i>vaardigheid<\/i> er ongeveer zo uitzien op een smartphone:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/alice.ya.ru\/s\/f785af07-4578-4a6b-95ae-485bd803ae20\"><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/e92c340f8d947ba9252e0fcab0511ce6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Bot maken<\/h2>\n<p>\nIk hoop dat deze tutorial nuttig zal zijn voor iedereen, inclusief beginnende \"botbouwers\". Daarom zal ik in deze sectie vrij gedetailleerd beschrijven hoe je over het algemeen in <i>Telegram<\/i>'voor bots. Voor degenen voor wie deze informatie niet relevant is \u2014 ga naar de volgende secties. <\/p>\n<p>Open de applicatie <i>Telegram<\/i>, roep de vader van alle bots (ze hebben het net als mensen) \u2014 <b><i>@BotFather<\/i><\/b> \u2014 en geef hem voor de start het commando \/help, om onze herinnering op te frissen over wat we kunnen doen. Momenteel zal het commando <i>\/newbot<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/12a0e84dd712e0c74dee0463f1b44e74.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOmdat de beschreven bot al is gemaakt, zal ik voor demonstratiedoeleinden tijdelijk een andere bot maken (die zal ik later verwijderen). Ik noem hem <i>DemoHabrBot<\/i>. Namen (<i>username<\/i>) van alle Telegram-bots moeten eindigen op het woord <i>bot<\/i>, bijvoorbeeld: <i>MyCoolBot<\/i> of <i>my_cool_bot<\/i> \u2014 dat is voor bots. Maar eerst geven we de bot een naam (<i>naam<\/i>) \u2014 en dit is voor mensen. De naam kan in elke taal zijn, mag spaties bevatten, en hoeft niet te eindigen op een specifiek woord. <i>bot<\/i>, en hoeft zelfs niet uniek te zijn. In dit voorbeeld heb ik deze bot genoemd <i>Demo Habr<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/682ecf64724cabcfef96639d6de87521.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLaten we nu een naam voor de bot kiezen (<i>username<\/i>, degene die voor bots is). Laten we het noemen <i>DemoHabrBot<\/i>. Alles wat met de naam van de bot te maken heeft (<i>naam<\/i>) heeft helemaal niets te maken met zijn naam \u2014 <i>username<\/i> (of is in tegendeel relevant). Na het succesvol aanmaken van een unieke naam voor de bot, moeten we de token kopi\u00ebren en bewaren (in strikte geheimhouding!) die op de screenshot met de rode pijl wordt getoond. Hiermee zullen we later de webhooks instellen op onze <i>Telegram<\/i>'n webhook naar onze <i>En nu geven we de opdracht aan de vader van alle bots:<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/78254946c9f763d212a1952bac6c706f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n, en hij zal ons een lijst tonen van alle bots die we hebben aangemaakt. Laten we de net aangemaakte bot voorlopig even met rust laten <i>\/mybots<\/i>(hij is aangemaakt om te laten zien hoe je bots maakt, maar we zullen hem vandaag nog gebruiken voor andere demonstratiedoeleinden), en laten we de bot bekijken <i>Demo Habr<\/i> Slimme Gedachten <i>). Klik in de lijst met bots op de knop met zijn naam.<\/i> (<i>@SmartThoughtsBot<\/i>Hier kunnen we onze bot instellen. Door op de knop<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/98434725cb0d7441ec5f2552b0b508a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBewerken\u2026 <i>Bewerken\u2026<\/i> Naam bewerken <i>te klikken, kunnen we de naam van de bot wijzigen, laten we zeggen in plaats van<\/i> , schrijven <i>). Klik in de lijst met bots op de knop met zijn naam.<\/i>Dwaas Idee\u00ebn <i>Botpic<\/i>. <i>\u2014 dit is de avatar van de bot, deze moet minimaal zijn<\/i> 150 x 150 px <i>\u2014 dit is een korte beschrijving die de gebruiker ziet bij de eerste keer dat de bot wordt gestart, als antwoord op de vraag:<\/i>. <i>Beschrijving<\/i> Wat kan deze bot doen? <i>Over<\/i> <i>\u2014 een nog kortere beschrijving die wordt verzonden met de link naar de bot (<\/i> ) of bij het bekijken van de informatie over hem.<code>https:\/\/t.me\/SmartThoughtsBot<\/code>We moeten alleen nog de commando's instellen. Hiervoor klikken we op de knop<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f15ba92be1bfea827273f79616bd2a3a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCommando's bewerken <i>. Voor de standaardisatie van gebruikerspraktijk<\/i>is het aan te raden altijd twee commando's te gebruiken: <i>Telegram<\/i> , en als de bot configuratie-instellingen nodig heeft \u2014 een extra commando \/instellingen. Onze bot is zo simpel als een bal, dus hij heeft voorlopig geen instellingen nodig. We schrijven de eerste twee commando's op, die we later in de code zullen verwerken. Nu, als de gebruiker een schuine streep (het teken van de schuine streep: \/) in het invoerveld invoert, verschijnt er een lijst met commando's voor snelle selectie. Zoals op de afbeelding: links \u2014 we stellen de commando's in via de vader-bot; rechts zijn deze commando's al beschikbaar voor gebruikers in onze bot. <i>\/start<\/i> en <i>\/help<\/i>Yandex-functie<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/b536b5fe7b8aad3d68877a7693ea0e6f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Nu, wanneer onze bot is aangemaakt, gaan we naar<\/h2>\n<p>\nNu onze bot is gemaakt, gaan we verder met <i>Yandex.Cloud<\/i>, om een functie te maken die de code van onze bot uitvoert. Als je nog niet gewerkt hebt met <i>Yandex.Cloud<\/i> , lees dan het materiaal <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464739\/\"><b><i>Alice in het land van Bitrix<\/i><\/b><\/a><\/noindex>, en vervolgens een <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/440374\/\"><b><i>Yandex-functies versturen e-mail<\/i><\/b><\/a><\/noindex>. Ik ben er bijna zeker van dat deze twee relatief kleine artikelen voldoende voor je zijn om een basisbegrip van het onderwerp te krijgen.<\/p>\n<p>Dus, in de console <i>Yandex.Cloud<\/i> kiezen we in het linkernavigatiemenu de optie <i>Cloud Functions<\/i>, en druk dan op de knop <i>Maak functie aan<\/i>. Geef het een naam en een korte beschrijving voor jezelf.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/67f313c60481c5ef84af8a28b4934621.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa het klikken op de knop <i>Cre\u00ebren<\/i> en na een paar seconden verschijnt de nieuwe functie in de lijst van alle functies. Klik op de naam \u2014 dit brengt ons naar de pagina <i>Overzicht<\/i> van onze functie. Hier moet je de (<i>Aan<\/i>) schakelaar <i>Publieke functie<\/i>, inschakelen zodat deze toegankelijk is van buitenaf (voor de <i>Yandex.Cloud<\/i>) wereld, en de waarden van de velden <i>Link voor aanroep<\/i> en <i>Identificatie<\/i> \u2014 houdt het geheim voor iedereen behalve jezelf en Telegram, zodat verschillende oplichters je functie niet kunnen aanroepen.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ba45d357965d567ba33ab0ee65d2eb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNu gaan we met het linkermenu naar <i>Redacteur<\/i> functies. Laten we onze <i>). Klik in de lijst met bots op de knop met zijn naam.<\/i>voor nu even aan de kant leggen, en een minimale sjablonfunctie maken om de werking van onze bot te controleren... In dit geval is deze functie onze bot... Kortom, nu maken we hier een eenvoudige bot die de verzoeken van gebruikers 'spiegelt' (d.w.z. terugstuurt). Dit sjabloon kan altijd worden gebruikt bij het maken van nieuwe Telegram-bots, om te controleren of de verbinding met <i>Telegram<\/i>normaal werkt. Klik op <i>Bestand aanmaken<\/i>, geef het de naam <i>index.js<\/i>, en in de online <i>Code-editor<\/i> plak je de volgende code in dit bestand:<\/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 de console van Yandex.Cloud zou dit er ongeveer zo uit moeten zien:<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f0204be84468c9ae7ec1b9e4ca0dfdd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVerder geven we iets lager aan <i>Ingangspunt<\/i> \u2014 <i>index.bot<\/i>, waar <i>index<\/i> dit is de naam van het bestand (<i>index.js<\/i>), terwijl <i>bot<\/i> \u2014 de naam van de functie (<i>module.exports.bot<\/i>). Laat alle andere velden 'zoals ze zijn' en druk rechtsboven op de knop <i>Versie maken<\/i>. Na een paar seconden wordt deze versie van de functie aangemaakt. Binnenkort, na de test van <i>de webhook<\/i>, zullen we een nieuwe versie maken \u2014 <i>). Klik in de lijst met bots op de knop met zijn naam.<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/48cd898f83bdc29d124600828bf2143f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Object Storage<\/h2>\n<p>\nNu we een <i>Nu, wanneer onze bot is aangemaakt, gaan we naar<\/i>hebben gemaakt, laten we, terwijl we in de console zijn, een zogenaamde bucket aanmaken ( <i>Yandex.Cloud<\/i>, laten we een zogenaamde bucket cre\u00ebren (<i>bucket<\/i>, dat wil zeggen, een bucket in het Nederlands, beslist geen boeket) voor het opslaan van afbeeldingsbestanden die we in onze bot zullen gebruiken <i>). Klik in de lijst met bots op de knop met zijn naam.<\/i>. Kies in het linke navigatiemenu de optie <i>Object Storage<\/i>, klik op de knop <i>Bucket aanmaken<\/i>, geef het een naam, bijvoorbeeld, <i>img-bucket<\/i>, en, belangrijk, <i>Toegang voor het lezen van objecten<\/i> maken we openbaar \u2014 anders ziet Telegram onze afbeeldingen niet. Alle andere velden laten we ongewijzigd. Druk op de knop <i>Bucket aanmaken<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c890a42f7d043e03300434b2c4a0258b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDaarna kan de lijst met alle buckets er ongeveer zo uitzien (als dit je enige bucket is):<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/34701231536742a7889b200ff49b08b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNu stel ik voor om op de naam van de bucket te klikken en daarin een map te maken, zodat je afbeeldingen voor verschillende applicaties kunt ordenen. Bijvoorbeeld, voor de Telegram-bot <i>). Klik in de lijst met bots op de knop met zijn naam.<\/i> heb ik een map aangemaakt met de naam <i>tg-bot-smart-thoughts<\/i> (geen probleem, ik begrijp deze code). Maak ook iets aan.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c5707b5ba54fea5b548d62e097328650.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNu kun je op de naam van de map klikken, deze openen en bestanden uploaden:<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/ead320e587e1d161e2cd54a94b4ea0d4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn door op de bestandsnaam te klikken, krijg je deze <i>URL<\/i> voor gebruik in onze bot, en eigenlijk \u2014 overal (maar publiceer deze niet <i>URL<\/i> zonder noodzakelijkheid, aangezien het verkeer van <i>Object Storage<\/i> wordt aangerekend).<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/07a833430b0584161423f363f6685306.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDat is in feite alles met <i>Object Storage<\/i>. Nu weet je wat te doen als je de oproep ziet om bestanden daar naartoe te uploaden.<\/p>\n<h2>Webhook<\/h2>\n<p>\nNu gaan we een <i>webhook<\/i> instellen \u2014 dat wil zeggen, wanneer de bot een update ontvangt (bijvoorbeeld, een bericht van een gebruiker), zal er een verzoek vanuit de server <i>Telegram<\/i> naar onze <i>En nu geven we de opdracht aan de vader van alle bots:<\/i> worden gestuurd (<i>request<\/i>) met de gegevens. Dit is de regel die je eenvoudig in de adresbalk van de browser kunt plakken en dan de pagina moet vernieuwen (dit hoef je maar \u00e9\u00e9n keer te doen): <code>https:\/\/api.telegram.org\/bot{bot_token}\/setWebHook?url={webhook_url}<\/code><br \/>\nVervang alleen <i>{bot_token}<\/i> door de token die we van de bots vader hebben gekregen bij het cre\u00ebren van onze bot, en <i>{webhook_url}<\/i> door <i>URL<\/i> onze <i>Yandex-functies<\/i>. Een moment! Maar dat <i>Roskomnadzor<\/i> verbiedt providers in Rusland om het adres te bedienen <code>https:\/\/api.telegram.org<\/code>. Ja, dat klopt. Maar verzin iets. Je kunt bijvoorbeeld je grootmoeder in Oekra\u00efne, Isra\u00ebl of Canada vragen \u2014 daar zijn er geen \u201cRussische censuur\u201d, en God weet hoe mensen zonder dit leven. Uiteindelijk moet het verzoek-antwoord bij het instellen van de webhook er zo uitzien:<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/713834a1665520d3e471cd3d1831ac06.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLaten we testen. Het zou 'spiegelen'.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ab0e97f9b0ca06295fe7f5f793aab2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDat is het. Onze felicitaties \u2014 nu <i>Nu, wanneer onze bot is aangemaakt, gaan we naar<\/i> is geworden <i>Telegram<\/i>-bot!<\/p>\n<h2>). Klik in de lijst met bots op de knop met zijn naam.<\/h2>\n<p>\nEn nu maken we Slimme Gedachten. De code is openbaar en ligt op <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>GitHub<\/i><\/b><\/a><\/noindex>. Het is vrij goed gecommentarieerd, en het bevat slechts een paar honderd regels. Lees het als een operazangeres het libretto! <\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/2ad0e96a2169d0859ccec836f151d3ea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nClone het project en installeer de afhankelijkheden:<\/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>\nBreng de nodige wijzigingen aan in het bestand <i>index.js<\/i> (optioneel; je kunt het ook ongemoeid laten). Maak een <i>zip<\/i>-archief aan, met het bestand <i>index.js<\/i> en de map <i>node_modules<\/i> erin, bijvoorbeeld met de naam <i>smart.zip<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c8c97707515338a01f8b8ed7f743c4a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGa nu in de console naar onze <i>Yandex-functies<\/i>, kies het tabblad <i>ZIP-archief<\/i>, klik op de knop <i>Bestand kiezen<\/i>, en upload ons archief <i>smart.zip<\/i>. Tenslotte, klik rechtsboven op de knop <i>Versie maken<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/96634c132848278ecc00a509e61b13f0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa enkele seconden, wanneer de functie is bijgewerkt, testen we onze bot opnieuw. Nu spiegelt hij niet meer, maar levert hij slimme idee\u00ebn!<\/p>\n<p><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/0c683826b5ef2bdbbd0253de4691900a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDat is alles voor vandaag. Andere artikelen volgen. Voor wie dit interessant vindt \u2014 abonneer je op meldingen van nieuwe artikelen. Je kunt je hier abonneren, of op de <i>Telegram<\/i>-kanaal <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/it_tutorial_zahar\"><i>IT Tutorial Zakhar<\/i><\/a><\/noindex>, of <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 op 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: Een introductie voor ontwikkelaars<\/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>Donaties<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/yasobe.ru\/na\/vui\"><img decoding=\"async\" alt=\"We bouwen een Telegram-bot in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/250f8765713080fcbbdaf56c04dc882f.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Bron: <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.3 - 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\/nl\/blog\/stroim-telegram-bot-v-yandeks-oblake\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47We bouwen een Telegram-bot in Yandex.Cloud | ProHoster","description":"Vandaag gaan we iets samenstellen met huishoudelijke materialen.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/stroim-telegram-bot-v-yandeks-oblake","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/41315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=41315"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/41316"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}