{"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\/fr\/blog\/stroim-telegram-bot-v-yandeks-oblake","title":{"rendered":"Cr\u00e9ons un bot Telegram dans Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/4a758744e4fc6bc797d270fa1bc42ef3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAujourd'hui, nous allons assembler \u00e0 partir de mat\u00e9riaux de r\u00e9cup\u00e9ration dans <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/\"><i>Yandex.Cloud<\/i><\/a><\/noindex> <i>un bot Telegram<\/i> \u00e0 l'aide de <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/functions\"><i>Yandex Cloud Functions<\/i><\/a><\/noindex> ou <i>les fonctions Yandex<\/i> \u2014 pour abr\u00e9ger) et <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/storage\"><i>Yandex Object Storage<\/i><\/a><\/noindex> ou <i>le stockage d'objets<\/i> \u2014 pour plus de clart\u00e9). Le code sera sur <i>Node.js<\/i>. Cependant, il y a un petit d\u00e9tail \u2014 une organisation appel\u00e9e, disons, <i>Roskomtsenzur<\/i> (la censure est interdite par l'article 29 de la Constitution de la F\u00e9d\u00e9ration de Russie), n'autorise pas les fournisseurs d'acc\u00e8s Internet en Russie \u00e0 transmettre des requ\u00eates \u00e0 <i>l'API Telegram<\/i> \u00e0 l'adresse : <code>https:\/\/api.telegram.org\/<\/code>. Eh bien, nous n'allons pas le faire non plus \u2014 si c'est non, c'est non. Apr\u00e8s tout, notre sac contient ce qu'on appelle des <i>webhooks<\/i> \u2014 gr\u00e2ce \u00e0 eux, nous ne faisons pas de requ\u00eates \u00e0 une adresse sp\u00e9cifique, mais envoyons simplement notre requ\u00eate comme r\u00e9ponse \u00e0 toute requ\u00eate adress\u00e9e \u00e0 nous. C'est-\u00e0-dire, comme \u00e0 Odessa \u2014 nous r\u00e9pondons \u00e0 une question par une question. Donc <i>l'API Telegram<\/i> il ne figurera pas dans notre code.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Avertissement<\/b><i>Les noms d'organisations gouvernementales mentionn\u00e9s dans cet article sont fictifs, et toute similitude avec des organisations r\u00e9ellement existantes est purement fortuite. <\/i> <\/p>\n<p>Ainsi, nous allons cr\u00e9er un bot qui nous fournira des pens\u00e9es intelligentes. Exactement comme sur l'image :<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/SmartThoughtsBot\"><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/6b7aca248999621a20f8a0ec29e75c75.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Vous pouvez l'essayer en action \u2014 voici son nom : <b><i>@SmartThoughtsBot<\/i><\/b>. Avez-vous remarqu\u00e9 le petit bouton <i>\u00ab Skill d'Alice \u00bb<\/i>? \u042d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0431\u043e\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0435\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u043c \u00ab\u043a\u043e\u043c\u043f\u0430\u043d\u044c\u043e\u043d\u043e\u043c\u00bb \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u0433\u043e <i>du skill d'Alice<\/i>, c'est-\u00e0-dire qu'il remplit les m\u00eames fonctions que le <i>skill d'Alice<\/i> et, peut-\u00eatre, qu'ils pourront coexister paisiblement en se faisant de la publicit\u00e9 mutuellement. Sur comment cr\u00e9er <i>le skill Pens\u00e9es Intelligentes<\/i> est expliqu\u00e9 dans l'article <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465275\/\"><b><i>Alice acquiert un skill<\/i><\/b><\/a><\/noindex>. Maintenant (apr\u00e8s quelques modifications faites apr\u00e8s la publication de l'article mentionn\u00e9 ci-dessus), sur smartphone, ce <i>skill<\/i> aura l'apparence suivante :<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/alice.ya.ru\/s\/f785af07-4578-4a6b-95ae-485bd803ae20\"><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/e92c340f8d947ba9252e0fcab0511ce6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Cr\u00e9ation du bot<\/h2>\n<p>\nJ'aimerais que ce tutoriel soit utile \u00e0 tous, y compris aux \u00ab constructeurs de bots \u00bb d\u00e9butants. Donc dans cette section, je vais d\u00e9crire en d\u00e9tail comment cr\u00e9er des bots dans <i>Telegram<\/i>\u2018n bots. Pour ceux qui n'ont pas besoin de cette information, passez aux sections suivantes. <\/p>\n<p>Ouvrez l'application <i>Telegaram<\/i>, appelez le p\u00e8re de tous les bots (ils sont comme les humains) \u2014 <b><i>@BotFather<\/i><\/b> \u2014 et d'abord, donnons-lui la commande \/help pour rafra\u00eechir notre m\u00e9moire sur ce que nous pouvons faire. Maintenant, nous allons nous int\u00e9resser \u00e0 la commande <i>\/newbot<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/12a0e84dd712e0c74dee0463f1b44e74.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPuisque le bot d\u00e9crit ici est d\u00e9j\u00e0 cr\u00e9\u00e9, pour des fins de d\u00e9monstration, je vais cr\u00e9er un autre bot pendant une courte p\u00e9riode (je l'effacerai ensuite). Je vais l'appeler <i>DemoHabrBot<\/i>. Les noms (<i>username<\/i>) de tous les bots Telegram doivent se terminer par le mot <i>bot<\/i>, par exemple : <i>MyCoolBot<\/i> ou <i>my_cool_bot<\/i> \u2014 c'est pour les bots. Mais d'abord, donnons un nom au bot (<i>nom<\/i>) \u2014 et c'est pour les humains. Le nom peut \u00eatre dans n'importe quelle langue, contenir des espaces, et n'a pas besoin de se terminer par le mot <i>bot<\/i>, et il n'est m\u00eame pas n\u00e9cessaire qu'il soit unique. Dans cet exemple, j'ai nomm\u00e9 ce bot <i>D\u00e9mo Habr<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/682ecf64724cabcfef96639d6de87521.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMaintenant, choisissons un nom pour le bot (<i>username<\/i>, celui qui est destin\u00e9 aux bots). Appelons-le <i>DemoHabrBot<\/i>. Tout ce qui concernait le nom du bot (<i>nom<\/i>) ne concerne absolument pas son nom \u2014 <i>username<\/i> (ou cela le concerne, mais dans le sens oppos\u00e9). Apr\u00e8s avoir cr\u00e9\u00e9 avec succ\u00e8s un nom unique pour le bot, nous devons copier et conserver (dans le plus grand secret !) le token affich\u00e9 sur la capture d'\u00e9cran avec la fl\u00e8che rouge. Avec cela, nous \u00e9tablirons plus tard le webhook sortant de <i>Telegram<\/i>\u2018un webhook vers notre <i>fonction Yandex<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/78254946c9f763d212a1952bac6c706f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEt maintenant, donnons l'ordre au p\u00e8re de tous les bots : <i>\/mybots<\/i>, et il nous montrera la liste de tous les bots que nous avons cr\u00e9\u00e9s. Laissez de c\u00f4t\u00e9 pour l'instant le bot fra\u00eechement cr\u00e9\u00e9 <i>D\u00e9mo Habr<\/i> (il a \u00e9t\u00e9 cr\u00e9\u00e9 pour montrer comment cr\u00e9er des bots, mais nous l'utiliserons encore aujourd'hui \u00e0 d'autres fins de d\u00e9monstration), et examinons le bot <i>Pens\u00e9es Intelligentes<\/i> (<i>@SmartThoughtsBot<\/i>). Cliquez sur le bouton avec son nom dans la liste des bots.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/98434725cb0d7441ec5f2552b0b508a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIci, nous pouvons configurer notre bot. En appuyant sur le bouton <i>Modifier\u2026<\/i> , nous acc\u00e9dons \u00e0 l'\u00e9dition de telle ou telle option. Par exemple, en cliquant sur le bouton <i>Modifier le nom<\/i> , nous pouvons changer le nom du bot, disons au lieu de <i>Pens\u00e9es Intelligentes<\/i>, \u00e9crire <i>Id\u00e9es Absurdes<\/i>. <i>Botpic<\/i> \u2014 c'est l'avatar du bot, il doit faire au moins <i>150 x 150 px<\/i>. <i>Description<\/i> \u2014 c'est une br\u00e8ve description que l'utilisateur voit lors du premier lancement du bot, en r\u00e9ponse \u00e0 la question : <i>Que peut faire ce bot ?<\/i> <i>\u00c0 propos<\/i> \u2014 encore une description plus courte, qui est transmise avec le lien vers le bot (<code>https:\/\/t.me\/SmartThoughtsBot<\/code>) ou lors de la consultation des informations \u00e0 son sujet.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f15ba92be1bfea827273f79616bd2a3a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl ne reste qu'\u00e0 configurer les commandes. Pour ce faire, appuyez sur le bouton <i>Modifier les commandes<\/i>. Pour standardiser la pratique utilisateur, <i>Telegram<\/i> il est recommand\u00e9 d'utiliser toujours deux commandes : <i>\/start<\/i> et <i>\/help<\/i>, et si le bot n\u00e9cessite des configurables \u2014 une commande suppl\u00e9mentaire \/settings. Notre bot est simple comme bonjour, donc il n'a pas encore besoin de configurations. Nous \u00e9crivons les deux premi\u00e8res commandes, que nous traiterons ensuite dans le code. Maintenant, si l'utilisateur entre une barre oblique (le signe de la barre oblique : \/) dans le champ de saisie, une liste de commandes appara\u00eetra pour un choix rapide. Tout comme sur l'image : \u00e0 gauche \u2014 nous \u00e9tablissons les commandes via le bot-p\u00e8re ; \u00e0 droite, ces commandes sont d\u00e9j\u00e0 accessibles aux utilisateurs dans notre bot.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/b536b5fe7b8aad3d68877a7693ea0e6f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>fonction Yandex<\/h2>\n<p>\nMaintenant que notre bot est cr\u00e9\u00e9, passons \u00e0 <i>Yandex.Cloud<\/i>, pour cr\u00e9er une fonction qui ex\u00e9cutera le code de notre bot. Si vous n'avez pas encore travaill\u00e9 avec <i>Yandex.Cloud<\/i> , consultez le mat\u00e9riel <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464739\/\"><b><i>Alice au pays de Bitrix<\/i><\/b><\/a><\/noindex>, puis \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/440374\/\"><b><i>Les fonctions Yandex envoient des e-mails<\/i><\/b><\/a><\/noindex>. Je suis presque s\u00fbr que ces deux articles relativement courts vous suffiront pour une compr\u00e9hension basique du sujet.<\/p>\n<p>Donc, dans la console <i>Yandex.Cloud<\/i> , dans le menu de navigation \u00e0 gauche, s\u00e9lectionnez l'\u00e9l\u00e9ment <i>Cloud Functions<\/i>, puis cliquez sur le bouton <i>Cr\u00e9er une fonction<\/i>. Donnez-lui un nom et, pour vous, une br\u00e8ve description.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/67f313c60481c5ef84af8a28b4934621.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nApr\u00e8s avoir cliqu\u00e9 sur le bouton <i>Cr\u00e9er<\/i> , et apr\u00e8s quelques secondes, la nouvelle fonction appara\u00eetra dans la liste de toutes les fonctions. Cliquez sur son nom \u2014 cela nous m\u00e8nera \u00e0 la page <i>Aper\u00e7u<\/i> de notre fonction. Ici, vous devez activer (<i>Activ\u00e9<\/i>) l'interrupteur <i>Fonction publique<\/i>, afin qu'elle soit accessible depuis l'ext\u00e9rieur (pour le <i>Yandex.Cloud<\/i>) monde, et que la valeur des champs <i>Lien pour l'appel<\/i> et <i>Identifiant<\/i> \u2014 garder secret de tous sauf soi-m\u00eame et de Telegram, afin que votre fonction ne puisse pas \u00eatre appel\u00e9e par divers escrocs.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ba45d357965d567ba33ab0ee65d2eb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMaintenant, avec le menu de gauche, allons dans <i>\u00c9diteur<\/i> les fonctions. Mettons de c\u00f4t\u00e9 pour un moment nos <i>Pens\u00e9es Intelligentes<\/i>, et cr\u00e9ons une fonction-mod\u00e8le minimale pour tester le bon fonctionnement de notre bot... En fait, dans ce contexte, cette fonction est notre bot... En bref, maintenant et ici, nous allons cr\u00e9er un tr\u00e8s simple bot qui \u00ab miroirera \u00bb (c'est-\u00e0-dire renverra) les demandes des utilisateurs. Ce mod\u00e8le peut toujours \u00eatre utilis\u00e9 lors de la cr\u00e9ation de nouveaux bots Telegram pour s'assurer que la connexion avec <i>Telegram\u2019<\/i>fonctionne correctement. Cliquez sur <i>Cr\u00e9er un fichier<\/i>, appelez-le <i>index.js<\/i>, et dans l'\u00e9diteur de code en ligne <i>, ins\u00e9rez dans ce fichier le code suivant :<\/i> 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};<\/p>\n<pre><code class=\"javascript\">Dans la console Yandex.Cloud, cela devrait ressembler \u00e0 ceci :\n<\/code><\/pre>\n<p>\nEnsuite, un peu plus bas, indiquez<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f0204be84468c9ae7ec1b9e4ca0dfdd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPoint d'entr\u00e9e <i>index.bot<\/i> \u2014 <i>c'est le nom du fichier (<\/i>, o\u00f9 <i>index<\/i> \u2014 le nom de la fonction (<i>index.js<\/i>), tandis que <i>bot<\/i> module.exports.bot<i>). Tous les autres champs restent \u00ab tels quels \u00bb, et dans le coin sup\u00e9rieur droit, cliquez sur le bouton<\/i>Cr\u00e9er une version <i>. Apr\u00e8s quelques secondes, cette version de la fonction sera cr\u00e9\u00e9e. Bient\u00f4t, apr\u00e8s les tests<\/i>du webhook <i>, nous cr\u00e9erons une nouvelle version \u2014<\/i>Maintenant que nous avons cr\u00e9\u00e9 <i>Pens\u00e9es Intelligentes<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/48cd898f83bdc29d124600828bf2143f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>le stockage d'objets<\/h2>\n<p>\n, restons dans la console <i>fonction Yandex<\/i>, et cr\u00e9ons un bucket ( <i>Yandex.Cloud<\/i>bucket<i>bucket<\/i>, c'est-\u00e0-dire un seau en russe, et pas un bouquet) pour stocker des fichiers image qui seront utilis\u00e9s dans notre bot <i>Pens\u00e9es Intelligentes<\/i>. Dans le menu de navigation \u00e0 gauche, s\u00e9lectionnez l'option <i>Object Storage<\/i>, puis cliquez sur le bouton <i>Cr\u00e9er un seau<\/i>, donnez-lui un nom, par exemple, <i>img-bucket<\/i>, et surtout, <i>Acc\u00e8s en lecture aux objets<\/i> rendre public \u2014 sinon nos images ne seront pas visibles sur Telegram. Tous les autres champs restent inchang\u00e9s. Appuyez sur le bouton <i>Cr\u00e9er un seau<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c890a42f7d043e03300434b2c4a0258b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nApr\u00e8s cela, la liste de tous les seaux peut ressembler \u00e0 ceci (si c'est votre seul seau) :<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/34701231536742a7889b200ff49b08b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMaintenant, je vous propose de cliquer sur le nom du seau, et \u00e0 l'int\u00e9rieur, de cr\u00e9er un dossier pour organiser le stockage des images pour diff\u00e9rentes applications. Par exemple, pour un bot Telegram, <i>Pens\u00e9es Intelligentes<\/i> j'ai cr\u00e9\u00e9 un dossier nomm\u00e9 <i>tg-bot-smart-thoughts<\/i> (ne vous inqui\u00e9tez pas, je comprends ce code). Cr\u00e9ez-en un vous aussi.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c5707b5ba54fea5b548d62e097328650.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMaintenant, vous pouvez cliquer sur le nom du dossier, y entrer et t\u00e9l\u00e9charger des fichiers :<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/ead320e587e1d161e2cd54a94b4ea0d4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEt en cliquant sur le nom du fichier \u2014 l'obtenir <i>URL<\/i> pour utilisation dans notre bot, et en g\u00e9n\u00e9ral \u2014 n'importe o\u00f9 (mais ne publiez pas ce <i>URL<\/i> sans raison, car le trafic depuis <i>le stockage d'objets<\/i> est factur\u00e9).<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/07a833430b0584161423f363f6685306.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVoil\u00e0, c'est tout concernant <i>le stockage d'objets<\/i>. Maintenant, vous saurez quoi faire lorsque vous verrez une invitation \u00e0 t\u00e9l\u00e9charger des fichiers l\u00e0-bas.<\/p>\n<h2>Webhook<\/h2>\n<p>\nMaintenant, nous allons configurer <i>le webhook<\/i> \u2014 c'est-\u00e0-dire, lorsque le bot re\u00e7oit une mise \u00e0 jour (par exemple, un message d'un utilisateur), une requ\u00eate <i>Telegram<\/i> sera envoy\u00e9e depuis le serveur <i>fonction Yandex<\/i> vers notre<i>request<\/i>({}) avec les donn\u00e9es. Voici la ligne que vous pouvez simplement coller dans la barre d'adresse de votre navigateur, puis actualiser la page (c'est \u00e0 faire une seule fois) : <code>https:\/\/api.telegram.org\/bot{bot_token}\/setWebHook?url={webhook_url}<\/code><br \/>\nIl suffit de remplacer <i>{bot_token}<\/i> par le token que nous avons obtenu de notre bot principal lors de la cr\u00e9ation de notre bot, et <i>{webhook_url}<\/i> \u2014 par <i>URL<\/i> le n\u00f4tre. <i>les fonctions Yandex<\/i>. Une minute ! Mais <i>Roskomtsenzur<\/i> interdit aux fournisseurs en RF de servir l'adresse <code>https:\/\/api.telegram.org<\/code>. Oui, c'est vrai. Mais vous pouvez trouver une solution. Par exemple, vous pouvez demander \u00e0 votre grand-m\u00e8re en Ukraine, Isra\u00ebl ou au Canada \u2014 l\u00e0-bas, il n'y a pas de \u00ab censure russe \u00bb, et seul Dieu sait comment les gens vivent sans cela. En fin de compte, la requ\u00eate-r\u00e9ponse lors de la configuration du webhook doit ressembler \u00e0 ceci :<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/713834a1665520d3e471cd3d1831ac06.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTestons. \u00c7a doit \u00ab r\u00e9fl\u00e9chir \u00bb.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ab0e97f9b0ca06295fe7f5f793aab2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEt c'est le cas. F\u00e9licitations \u2014 maintenant c'est un <i>fonction Yandex<\/i> est <i>Telegram<\/i>-bot !<\/p>\n<h2>Pens\u00e9es Intelligentes<\/h2>\n<p>\nEt maintenant, faisons des Pens\u00e9es Intelligentes. Le code est ouvert et disponible sur <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>GitHub<\/i><\/b><\/a><\/noindex>. Il est assez bien comment\u00e9, et il contient \u00e0 peine une centaine de lignes. Lisez-le comme une diva d'op\u00e9ra lirait un livret ! <\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/2ad0e96a2169d0859ccec836f151d3ea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nClonez le projet et installez les d\u00e9pendances :<\/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>\nApportez les modifications n\u00e9cessaires \u00e0 votre fichier <i>index.js<\/i> (facultatif ; vous pouvez ne rien changer). Cr\u00e9ez <i>une archive<\/i>-zip, avec le fichier <i>index.js<\/i> et le dossier <i>node_modules<\/i> \u00e0 l'int\u00e9rieur, par exemple, sous le nom <i>smart.zip<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c8c97707515338a01f8b8ed7f743c4a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMaintenant, allez dans la console vers notre <i>les fonctions Yandex<\/i>, s\u00e9lectionnez l'onglet <i>Archive ZIP<\/i>, cliquez sur le bouton <i>Choisir un fichier<\/i>, et t\u00e9l\u00e9chargez notre archive <i>smart.zip<\/i>. Enfin, dans le coin sup\u00e9rieur droit, cliquez sur le bouton <i>. Apr\u00e8s quelques secondes, cette version de la fonction sera cr\u00e9\u00e9e. Bient\u00f4t, apr\u00e8s les tests<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/96634c132848278ecc00a509e61b13f0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDans quelques secondes, lorsque la fonction sera mise \u00e0 jour, testons \u00e0 nouveau notre bot. Maintenant, il ne \u00ab r\u00e9fl\u00e9chit \u00bb plus, mais fournit des pens\u00e9es intelligentes !<\/p>\n<p><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/0c683826b5ef2bdbbd0253de4691900a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nC'est tout pour aujourd'hui. D'autres articles suivront. Pour ceux qui aiment ce genre de lecture, abonnez-vous aux notifications des nouveaux articles. Vous pouvez vous abonner ici, ou sur <i>Telegram<\/i>-le canal <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/it_tutorial_zahar\"><i>IT Tutoriel Zakar<\/i><\/a><\/noindex>, ou <i>Twitter<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/mikezaharov\"><i>@mikezaharov<\/i><\/a><\/noindex>.<\/p>\n<h2>Liens<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>Code sur 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 : Une introduction pour les d\u00e9veloppeurs<\/i><\/b><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/core.telegram.org\/bots\/api\"><b><i>API Bot Telegram<\/i><\/b><\/a><\/noindex><\/p>\n<h2>Dons<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/yasobe.ru\/na\/vui\"><img decoding=\"async\" alt=\"Cr\u00e9ons un bot Telegram dans Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/250f8765713080fcbbdaf56c04dc882f.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/486876\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0438\u0437 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043c\u044b \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0435 Telegram-\u0431\u043e\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Yandex Cloud Functions (\u0438\u043b\u0438 \u042f\u043d\u0434\u0435\u043a\u0441-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438) \u0438 Yandex Object Storage (\u0438\u043b\u0438 \u041e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u2014 \u0434\u043b\u044f \u044f\u0441\u043d\u043e\u0441\u0442\u0438). \u041a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 Node.js. \u041e\u0434\u043d\u0430\u043a\u043e, \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u043f\u0438\u043a\u0430\u043d\u0442\u043d\u043e\u0435 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u2014 \u043d\u0435\u043a\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a, \u0420\u043e\u0441\u0441\u041a\u043e\u043c\u0426\u0435\u043d\u0437\u0443\u0440 (\u0446\u0435\u043d\u0437\u0443\u0440\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 29 \u041a\u043e\u043d\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u0438 \u0420\u0424), \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":41316,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-41315","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - 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\/fr\/blog\/stroim-telegram-bot-v-yandeks-oblake\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Construisons un bot Telegram dans Yandex.Cloud | ProHoster","description":"Aujourd'hui, \u00e0 partir de mat\u00e9riaux disponibles, nous allons assembler.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/stroim-telegram-bot-v-yandeks-oblake","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/41315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=41315"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/41316"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}