{"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\/es\/blog\/stroim-telegram-bot-v-yandeks-oblake","title":{"rendered":"Creando un bot de Telegram en Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/4a758744e4fc6bc797d270fa1bc42ef3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHoy, utilizando materiales de f\u00e1cil acceso, vamos a crear en <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/\"><i>Yandex.Cloud<\/i><\/a><\/noindex> <i>un bot de Telegram<\/i> utilizando <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/functions\"><i>Yandex Cloud Functions<\/i><\/a><\/noindex> (o <i>las funciones de Yandex<\/i> \u2014 por brevedad) y <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/storage\"><i>Yandex Object Storage<\/i><\/a><\/noindex> (o <i>Almacenamiento de objetos<\/i> \u2014 para mayor claridad). El c\u00f3digo estar\u00e1 en <i>Node.js<\/i>. Sin embargo, hay una circunstancia delicada: una organizaci\u00f3n denominada, digamos, <i>Roskomtsenzur<\/i> (la censura est\u00e1 prohibida por el art\u00edculo 29 de la Constituci\u00f3n de la Federaci\u00f3n de Rusia), no permite a los proveedores de Internet en Rusia enviar solicitudes a <i>Telegram API<\/i> en la direcci\u00f3n: <code>https:\/\/api.telegram.org\/<\/code>. Pues no lo haremos; si no se puede, no se puede. En nuestra bolsa tenemos los llamados <i>webhooks<\/i> \u2014 con ellos no hacemos solicitudes a una direcci\u00f3n espec\u00edfica, sino que simplemente enviamos nuestra solicitud como respuesta a cualquier solicitud que se nos haga. Es decir, como en Odesa: respondemos a una pregunta con otra pregunta. Por lo tanto, <i>Telegram API<\/i> no estar\u00e1 presente en nuestro c\u00f3digo.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Descargo de responsabilidad<\/b><i>Los nombres de cualquier organizaci\u00f3n gubernamental mencionados en este art\u00edculo son ficticios, y cualquier coincidencia con nombres de organizaciones reales es pura casualidad. <\/i> <\/p>\n<p>As\u00ed que haremos un bot que nos proporcionar\u00e1 pensamientos inteligentes. Exactamente como en la imagen:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/SmartThoughtsBot\"><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/6b7aca248999621a20f8a0ec29e75c75.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Puedes probarlo en acci\u00f3n; aqu\u00ed est\u00e1 su nombre: <b><i>@SmartThoughtsBot<\/i><\/b>. Notaste el bot\u00f3n <i>\u00abHabilidad de 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>de la habilidad de Alice<\/i>, es decir, realiza las mismas funciones que <i>la habilidad de Alice<\/i> y, posiblemente, puedan coexistir pac\u00edficamente promocion\u00e1ndose mutuamente. Acerca de c\u00f3mo crear <i>la habilidad Pensamientos Inteligentes<\/i> se detalla en el art\u00edculo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465275\/\"><b><i>Alice adquiere una habilidad<\/i><\/b><\/a><\/noindex>. Ahora (despu\u00e9s de realizar algunos cambios tras la publicaci\u00f3n del art\u00edculo mencionado anteriormente), en el smartphone, esta <i>habilidad<\/i> se ver\u00e1 aproximadamente as\u00ed:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/alice.ya.ru\/s\/f785af07-4578-4a6b-95ae-485bd803ae20\"><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/e92c340f8d947ba9252e0fcab0511ce6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Creaci\u00f3n de un bot<\/h2>\n<p>\nMe gustar\u00eda que este tutorial fuera \u00fatil para todos, incluidos los principiantes en la 'construcci\u00f3n de bots'. Por lo tanto, en esta secci\u00f3n describir\u00e9 con bastante detalle c\u00f3mo crear <i>Telegram<\/i>de bots. Para aquellos que no necesitan esta informaci\u00f3n, pasen a las secciones siguientes. <\/p>\n<p>\u2018e. Para aquellos que no necesiten esta informaci\u00f3n, salten a las siguientes secciones. <i>Abrimos la aplicaci\u00f3n<\/i>Telegaram <b><i>, llamamos al padre de todos los bots (como en el caso de los humanos) \u2014<\/i><\/b> @BotFather <i>\/newbot<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/12a0e84dd712e0c74dee0463f1b44e74.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2014 y, para empezar, le damos el comando \/help, para refrescar la memoria sobre lo que podemos hacer. En este momento, nos interesar\u00e1 el comando <i>Dado que el bot descrito ya est\u00e1 creado, para fines de demostraci\u00f3n, crear\u00e9 un bot diferente por un corto tiempo (luego lo eliminar\u00e9). Lo nombrar\u00e9<\/i>DemoHabrBot<i>username<\/i>. Los nombres ( <i>) de todos los bots de Telegram deben terminar con la palabra<\/i>, por ejemplo: <i>MyCoolBot<\/i> o <i>my_cool_bot<\/i> \u2014 esto es para los bots. Pero primero, le damos un nombre al bot (<i>name<\/i>) \u2014 y esto es para las personas. El nombre puede estar en cualquier idioma, contener espacios y no tiene que terminar en una palabra. <i>) de todos los bots de Telegram deben terminar con la palabra<\/i>, y ni siquiera tiene que ser \u00fanico. En este ejemplo, llam\u00e9 a este bot <i>Demo Habr<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/682ecf64724cabcfef96639d6de87521.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAhora elijamos un nombre para el bot (<i>username<\/i>, el que se usa para los bots). Lo llamaremos <i>Dado que el bot descrito ya est\u00e1 creado, para fines de demostraci\u00f3n, crear\u00e9 un bot diferente por un corto tiempo (luego lo eliminar\u00e9). Lo nombrar\u00e9<\/i>. Todo lo que se refiera al nombre del bot (<i>name<\/i>) no tiene nada que ver con su nombre \u2014 <i>username<\/i> (o s\u00ed, pero de manera opuesta). Despu\u00e9s de crear con \u00e9xito un nombre \u00fanico para el bot, necesitamos copiar y guardar (\u00a1en estricta confidencialidad!) el token que se muestra en la captura de pantalla con la flecha roja. Con esto, m\u00e1s tarde configuraremos el webhook desde <i>Telegram<\/i>el webhook a nuestro <i>Funci\u00f3n de Yandex<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/78254946c9f763d212a1952bac6c706f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAhora le damos una orden al padre de todos los bots: <i>\/mybots<\/i>, y \u00e9l nos mostrar\u00e1 la lista de todos los bots que hemos creado. Por ahora dejemos de lado el nuevo bot <i>Demo Habr<\/i> (fue creado para mostrar c\u00f3mo crear bots, pero a\u00fan lo utilizaremos hoy para otros fines demostrativos), y revisemos el bot <i>Pensamientos Inteligentes<\/i> (<i>@SmartThoughtsBot<\/i>). Hacemos clic en el bot\u00f3n con su nombre en la lista de bots.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/98434725cb0d7441ec5f2552b0b508a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAqu\u00ed podemos configurar nuestro bot. Al hacer clic en el bot\u00f3n <i>Editar\u2026<\/i> pasaremos a editar una opci\u00f3n u otra. Por ejemplo, al hacer clic en el bot\u00f3n <i>Editar Nombre<\/i> podemos cambiar el nombre del bot, digamos que en lugar de <i>Pensamientos Inteligentes<\/i>, escribir <i>Ideas Rid\u00edculas<\/i>. <i>Botpic<\/i> \u2014 es el avatar del bot, debe ser al menos <i>150 x 150 px<\/i>. <i>Descripci\u00f3n<\/i> \u2014 es una breve descripci\u00f3n que el usuario ve al iniciar el bot por primera vez, como respuesta a la pregunta: <i>\u00bfQu\u00e9 puede hacer este bot?<\/i> <i>Acerca de<\/i> \u2014 es una descripci\u00f3n a\u00fan m\u00e1s breve que se env\u00eda con el enlace al bot (<code>https:\/\/t.me\/SmartThoughtsBot<\/code>) o al ver la informaci\u00f3n sobre \u00e9l.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f15ba92be1bfea827273f79616bd2a3a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSolo nos queda configurar los comandos. Para ello, hacemos clic en el bot\u00f3n <i>Editar Comandos<\/i>. Para estandarizar la pr\u00e1ctica del usuario, se recomienda usar siempre dos comandos: <i>Telegram<\/i> , y si el bot necesita configuraciones, un comando adicional \/settings. Nuestro bot es tan simple como un bal\u00f3n, por lo que no necesita configuraciones por ahora. Escribimos los dos primeros comandos, que luego procesaremos en el c\u00f3digo. Ahora, si el usuario introduce una barra (el signo de la barra diagonal: \/) en el campo de entrada, aparecer\u00e1 una lista de comandos para su selecci\u00f3n r\u00e1pida. Todo como en la imagen: a la izquierda \u2014 configuramos los comandos a trav\u00e9s del bot padre; a la derecha, estos comandos ya est\u00e1n disponibles para los usuarios en nuestro bot. <i>\/start<\/i> y <i>\/help<\/i>Funci\u00f3n de Yandex<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/b536b5fe7b8aad3d68877a7693ea0e6f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Ahora, cuando nuestro bot ha sido creado, pasamos a<\/h2>\n<p>\nAhora que hemos creado nuestro bot, pasemos a <i>Yandex.Cloud<\/i>, para crear una funci\u00f3n que ejecute el c\u00f3digo de nuestro bot. Si a\u00fan no has trabajado con <i>Yandex.Cloud<\/i> lee el material <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464739\/\"><b><i>Alicia en el pa\u00eds de Bitrix<\/i><\/b><\/a><\/noindex>, y luego \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/440374\/\"><b><i>Las funciones de Yandex env\u00edan correos electr\u00f3nicos<\/i><\/b><\/a><\/noindex>. Estoy casi seguro de que estos dos art\u00edculos relativamente breves ser\u00e1n suficientes para una comprensi\u00f3n b\u00e1sica del tema.<\/p>\n<p>Entonces, en la consola <i>de Yandex.Cloud<\/i> en el men\u00fa de navegaci\u00f3n izquierdo seleccionamos la opci\u00f3n <i>Cloud Functions<\/i>, y luego hacemos clic en el bot\u00f3n <i>Crear funci\u00f3n<\/i>. Le asignamos un nombre y para nosotros una breve descripci\u00f3n.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/67f313c60481c5ef84af8a28b4934621.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDespu\u00e9s de hacer clic en el bot\u00f3n <i>Crear<\/i> y despu\u00e9s de unos segundos, la nueva funci\u00f3n aparecer\u00e1 en la lista de todas las funciones. Hacemos clic en su nombre, lo que nos llevar\u00e1 a la p\u00e1gina <i>Rese\u00f1a<\/i> de nuestra funci\u00f3n. Aqu\u00ed necesitamos activar (<i>On<\/i>) el interruptor <i>Funci\u00f3n p\u00fablica<\/i>, para que sea accesible desde el exterior (para <i>de Yandex.Cloud<\/i>) el mundo, y el valor de los campos <i>Enlace para invocaci\u00f3n<\/i> y <i>Identificador<\/i> \u2014 mantener en secreto profundo de todos, excepto de uno mismo y de Telegram, para que estafadores no puedan invocar su funci\u00f3n.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ba45d357965d567ba33ab0ee65d2eb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAhora, utilizando el men\u00fa de la izquierda, accedemos a <i>Editor<\/i> las funciones. Por ahora, dejemos a un lado nuestros <i>Pensamientos Inteligentes<\/i>, y creemos una funci\u00f3n plantilla m\u00ednima para comprobar el funcionamiento de nuestro bot\u2026 Sin embargo, en este contexto, esta funci\u00f3n es nuestro bot\u2026 En resumen, ahora mismo aqu\u00ed haremos un bot muy simple que \"reflejar\u00e1\" (es decir, enviar\u00e1 de vuelta) las solicitudes de los usuarios. Esta plantilla se puede usar siempre al crear nuevos bots de Telegram, para asegurarse de que la conexi\u00f3n con <i>Telegram<\/i>funciona correctamente. Hacemos clic en <i>Crear archivo<\/i>, lo llamamos <i>index.js<\/i>, y en el editor de c\u00f3digo en l\u00ednea <i>pegamos en este archivo el siguiente c\u00f3digo:<\/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\">En la consola de Yandex.Cloud esto deber\u00eda verse aproximadamente as\u00ed:\n<\/code><\/pre>\n<p>\nLuego un poco m\u00e1s abajo indicamos<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f0204be84468c9ae7ec1b9e4ca0dfdd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPunto de entrada <i>index.bot<\/i> \u2014 <i>index<\/i>, donde <i>es el nombre del archivo (<\/i> \u2014 nombre de la funci\u00f3n (<i>index.js<\/i>), y <i>) de todos los bots de Telegram deben terminar con la palabra<\/i> module.exports.bot<i>). Todos los dem\u00e1s campos los dejamos \u00abcomo est\u00e1n\u00bb, y en la esquina superior derecha hacemos clic en el bot\u00f3n<\/i>Crear versi\u00f3n <i>. Despu\u00e9s de unos segundos, se crear\u00e1 esta versi\u00f3n de la funci\u00f3n. Pronto, despu\u00e9s de probar<\/i>el webhook <i>, crearemos una nueva versi\u00f3n \u2014<\/i>Ahora que hemos creado <i>Pensamientos Inteligentes<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/48cd898f83bdc29d124600828bf2143f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Almacenamiento de objetos<\/h2>\n<p>\n, vamos a, mientras estamos en la consola <i>Ahora, cuando nuestro bot ha sido creado, pasamos a<\/i>, vamos, mientras estamos en la consola <i>de Yandex.Cloud<\/i>, crearemos un bucket (<i>bucket<\/i>, es decir, un cubo en espa\u00f1ol, nada que ver con un ramo) para almacenar archivos de im\u00e1genes que se usar\u00e1n en nuestro bot <i>Pensamientos Inteligentes<\/i>. En el men\u00fa de navegaci\u00f3n de la izquierda, seleccionamos la opci\u00f3n <i>Object Storage<\/i>, hacemos clic en el bot\u00f3n <i>Crear bucket<\/i>, le damos un nombre, por ejemplo, <i>img-bucket<\/i>, y, lo m\u00e1s importante, <i>Acceso de lectura a los objetos<\/i> lo hacemos p\u00fablico \u2014 de lo contrario, Telegram no ver\u00e1 nuestras im\u00e1genes. Todos los dem\u00e1s campos permanecen sin cambios. Presionamos el bot\u00f3n <i>Crear bucket<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c890a42f7d043e03300434b2c4a0258b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDespu\u00e9s de esto, la lista de todos los buckets podr\u00eda verse as\u00ed (si este es su \u00fanico bucket):<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/34701231536742a7889b200ff49b08b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAhora propongo hacer clic en el nombre del bucket y dentro crear una carpeta para organizar el almacenamiento de im\u00e1genes para diferentes aplicaciones. Por ejemplo, para un bot de Telegram <i>Pensamientos Inteligentes<\/i> he creado una carpeta llamada <i>tg-bot-smart-thoughts<\/i> (no se preocupe, entender\u00e9 este c\u00f3digo). Cree usted tambi\u00e9n una.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c5707b5ba54fea5b548d62e097328650.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAhora puede hacer clic en el nombre de la carpeta, entrar en ella y subir archivos:<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/ead320e587e1d161e2cd54a94b4ea0d4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nY al hacer clic en el nombre del archivo, podr\u00e1 obtenerlo <i>URL<\/i> para usarlo en nuestro bot y, en general, en cualquier lugar (pero no publique este <i>URL<\/i> sin necesidad, ya que el tr\u00e1fico de <i>Almacenamiento de objetos<\/i> se factura).<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/07a833430b0584161423f363f6685306.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nY eso es todo con <i>Almacenamiento de objetos<\/i>. Ahora sabr\u00e1 qu\u00e9 hacer cuando vea un aviso para cargar archivos.<\/p>\n<h2>Webhook<\/h2>\n<p>\nAhora vamos a configurar el <i>webhook<\/i> \u2014 es decir, cuando el bot reciba una actualizaci\u00f3n (por ejemplo, un mensaje de un usuario), se enviar\u00e1 una solicitud desde el servidor <i>Telegram<\/i> a nuestro <i>Funci\u00f3n de Yandex<\/i> con los datos. Aqu\u00ed hay una l\u00ednea que puede simplemente insertar en la barra de direcciones del navegador y luego actualizar la p\u00e1gina (solo necesita hacerlo una vez):<i>request<\/i>Solo reemplazamos <code>https:\/\/api.telegram.org\/bot{bot_token}\/setWebHook?url={webhook_url}<\/code><br \/>\n{bot_token} <i>por el token que recibimos del bot padre al crear nuestro bot, y<\/i> {webhook_url} <i>\u2014 por<\/i> nuestro <i>URL<\/i> . \u00a1Un momento! Pero <i>las funciones de Yandex<\/i>proh\u00edbe a los proveedores en Rusia servir la direcci\u00f3n <i>Roskomtsenzur<\/i> . S\u00ed, es cierto. Pero piense en algo. Por ejemplo, puede pedirle a su abuela en Ucrania, Israel o Canad\u00e1 \u2014 all\u00ed no hay ning\u00fan 'censura rusa', y solo dios sabe c\u00f3mo vive la gente sin esto. En resumen, la solicitud-respuesta al configurar el webhook deber\u00eda verse as\u00ed: <code>https:\/\/api.telegram.org<\/code>Probando. Deber\u00eda 'reflejar'.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/713834a1665520d3e471cd3d1831ac06.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAs\u00ed es. Nuestras felicitaciones \u2014 ahora<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ab0e97f9b0ca06295fe7f5f793aab2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n-bot! <i>Ahora, cuando nuestro bot ha sido creado, pasamos a<\/i> se convirti\u00f3 en <i>Telegram<\/i>Ahora hacemos Pensamientos Inteligentes. El c\u00f3digo es abierto y est\u00e1 en<\/p>\n<h2>Pensamientos Inteligentes<\/h2>\n<p>\n. Est\u00e1 bastante bien comentado y tiene solo un centenar de l\u00edneas. \u00a1L\u00e9alo como una diva de \u00f3pera lee el libreto! <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>GitHub<\/i><\/b><\/a><\/noindex>Clonar el proyecto e instalar dependencias: <\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/2ad0e96a2169d0859ccec836f151d3ea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nClona el proyecto e instala las dependencias:<\/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>\nRealice los cambios necesarios en el archivo <i>index.js<\/i> (opcional; no es necesario cambiar nada). Cree <i>zip<\/i>-archivo con el archivo <i>index.js<\/i> y la carpeta <i>node_modules<\/i> adentro, por ejemplo, con el nombre <i>smart.zip<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c8c97707515338a01f8b8ed7f743c4a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAhora dir\u00edgete a nuestra <i>las funciones de Yandex<\/i>, selecciona la pesta\u00f1a <i>ZIP-archivo<\/i>, haz clic en el bot\u00f3n <i>Seleccionar archivo<\/i>, y sube nuestro archivo comprimido <i>smart.zip<\/i>. Finalmente, en la esquina superior derecha, haz clic en el bot\u00f3n <i>. Despu\u00e9s de unos segundos, se crear\u00e1 esta versi\u00f3n de la funci\u00f3n. Pronto, despu\u00e9s de probar<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/96634c132848278ecc00a509e61b13f0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDespu\u00e9s de unos segundos, cuando la funci\u00f3n se actualice, probaremos nuevamente nuestro bot. \u00a1Ahora ya no \u00abrefleja\u00bb, sino que ofrece pensamientos inteligentes!<\/p>\n<p><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/0c683826b5ef2bdbbd0253de4691900a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEso es todo por hoy. Otros art\u00edculos seguir\u00e1n. A quienes les interese leer algo similar, suscr\u00edbanse a las notificaciones sobre nuevos art\u00edculos. Pueden suscribirse aqu\u00ed o en <i>Telegram<\/i>-canal <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/it_tutorial_zahar\"><i>IT Tutorial Zajar<\/i><\/a><\/noindex>, o <i>Twitter<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/mikezaharov\"><i>@mikezaharov<\/i><\/a><\/noindex>.<\/p>\n<h2>Enlaces<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>C\u00f3digo en 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: Una introducci\u00f3n para desarrolladores<\/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>Donaciones<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/yasobe.ru\/na\/vui\"><img decoding=\"async\" alt=\"Creando un bot de Telegram en Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/250f8765713080fcbbdaf56c04dc882f.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Fuente: <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\/es\/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=\"es_ES\" \/>\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\/es\/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\udd47Construimos un bot de Telegram en Yandex.Cloud | ProHoster","description":"Hoy, con materiales accesibles, construimos un.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/stroim-telegram-bot-v-yandeks-oblake","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/41315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=41315"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/41316"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}