{"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\/it\/blog\/stroim-telegram-bot-v-yandeks-oblake","title":{"rendered":"Costruiamo un bot Telegram su Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/4a758744e4fc6bc797d270fa1bc42ef3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOggi costruiremo in <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/\"><i>Yandex.Cloud<\/i><\/a><\/noindex> <i>un bot di Telegram<\/i> utilizzando <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/functions\"><i>Yandex Cloud Functions<\/i><\/a><\/noindex> (o <i>funzioni di Yandex<\/i> \u2014 per brevit\u00e0) e <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/storage\"><i>Yandex Object Storage<\/i><\/a><\/noindex> (o <i>Storage a Oggetti<\/i> \u2014 per chiarezza). Il codice sar\u00e0 su <i>Node.js<\/i>. Tuttavia, c'\u00e8 un piccolo dettaglio: un'agenzia chiamata, per cos\u00ec dire, <i>RosKomTsenzur<\/i> (la censura \u00e8 vietata dall'articolo 29 della Costituzione della Federazione Russa), non consente ai fornitori di servizi Internet russi di inviare richieste a <i>Telegram API<\/i> all'indirizzo: <code>https:\/\/api.telegram.org\/<\/code>. Ma noi non lo faremo \u2014 se non si pu\u00f2, non si pu\u00f2. Infondo nel nostro borsone abbiamo i cosiddetti <i>webhook<\/i> \u2014 grazie ai quali non facciamo richieste a un indirizzo specifico, ma semplicemente inviamo la nostra richiesta come risposta a qualsiasi richiesta che riceviamo. Cio\u00e8, come a Odessa \u2014 rispondiamo a una domanda con un'altra domanda. Pertanto <i>Telegram API<\/i> non sar\u00e0 presente nel nostro codice.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Disclaimer<\/b><i>I nomi delle organizzazioni statali menzionati in questo articolo sono inventati e ogni somiglianza con nomi di organizzazioni realmente esistenti \u00e8 puramente casuale. <\/i> <\/p>\n<p>Quindi, creeremo un bot che ci fornir\u00e0 pensieri intelligenti. Proprio come nell'immagine:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/SmartThoughtsBot\"><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/6b7aca248999621a20f8a0ec29e75c75.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Puoi provarlo in azione \u2014 ecco il nome: <b><i>@SmartThoughtsBot<\/i><\/b>. Hai notato il pulsante <i>\u00abCompetenze di 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>abilit\u00e0 di Alice<\/i>, cio\u00e8 svolge le stesse funzioni di <i>abilit\u00e0 di Alice<\/i> e, forse, potranno coesistere pacificamente pubblicizzando l'uno l'altro. Di cosa fare per creare <i>l'abilit\u00e0 Pensieri Intelligenti<\/i> \u00e8 spiegato nell'articolo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465275\/\"><b><i>Alice acquisisce l'abilit\u00e0<\/i><\/b><\/a><\/noindex>. Ora (dopo aver apportato alcune modifiche gi\u00e0 dopo la pubblicazione dell'articolo sopra menzionato) su uno smartphone questa <i>abilit\u00e0<\/i> apparir\u00e0 pi\u00f9 o meno cos\u00ec:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/alice.ya.ru\/s\/f785af07-4578-4a6b-95ae-485bd803ae20\"><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/e92c340f8d947ba9252e0fcab0511ce6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Creazione del bot<\/h2>\n<p>\nMi piacerebbe che questo tutorial fosse utile a tutti, compresi i principianti 'costruttori di bot'. Pertanto, in questa sezione descriver\u00f2 piuttosto dettagliatamente come creare bot in <i>Telegram<\/i>\u2018ai bot. Per chi non ha bisogno di queste informazioni, passate alle sezioni successive. <\/p>\n<p>Apriamo l'applicazione <i>Telegaram<\/i>, chiamiamo il padre di tutti i bot (loro hanno tutto come le persone) \u2014 <b><i>@BotFather<\/i><\/b> \u2014 e iniziamo dando il comando \/help, per rinfrescare la memoria su cosa possiamo fare. Ora ci interesser\u00e0 il comando <i>\/newbot<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/12a0e84dd712e0c74dee0463f1b44e74.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPoich\u00e9 il bot descritto qui \u00e8 gi\u00e0 stato creato, per scopi dimostrativi creer\u00f2 per un breve periodo un altro bot (dopo lo canceller\u00f2). Lo chiamer\u00f2 <i>DemoHabrBot<\/i>. I nomi (<i>username<\/i>) di tutti i bot di Telegram devono terminare con la parola <i>bot<\/i>, per esempio: <i>MyCoolBot<\/i> o <i>my_cool_bot<\/i> \u2014 questo \u00e8 per i bot. Ma prima diamo al bot un nome (<i>name<\/i>) \u2014 e questo per le persone. Il nome pu\u00f2 essere in qualsiasi lingua, contenere spazi e non deve necessariamente finire con una parola <i>bot<\/i>, e non deve nemmeno essere unico. In questo esempio ho chiamato questo bot <i>Demo Habra<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/682ecf64724cabcfef96639d6de87521.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra scegliamo un nome per il bot (<i>username<\/i>, quello per i bot). Chiamiamolo <i>DemoHabrBot<\/i>. Tutto ci\u00f2 che riguardava il nome del bot (<i>name<\/i>) non ha nulla a che fare con il suo nome \u2014 <i>username<\/i> (o ha a che fare, ma con precisione inversa). Dopo aver creato con successo un nome unico per il bot, dobbiamo copiare e conservare (nella massima segretezza!) il token mostrato nella schermata con la freccia rossa. Con questo faremo qualcosa di pi\u00f9 tardi <i>Telegram<\/i>\u2018il webhook sul nostro <i>funzione Yandex<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/78254946c9f763d212a1952bac6c706f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra diamo un comando al padre di tutti i bot: <i>\/mybots<\/i>, e ci mostrer\u00e0 l'elenco di tutti i bot che abbiamo creato. Lasciamo per ora in pace il nostro bot appena sfornato <i>Demo Habra<\/i> (\u00e8 stato creato per mostrare come creare bot, ma lo utilizzeremo oggi anche per altre dimostrazioni), e consideriamo il bot <i>Pensieri Intelligenti<\/i> (<i>@SmartThoughtsBot<\/i>). Facciamo clic nel elenco di bot sul pulsante con il suo nome.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/98434725cb0d7441ec5f2552b0b508a8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQui possiamo configurare il nostro bot. Facendo clic sul pulsante <i>Modifica\u2026<\/i> passeremo alla modifica di una delle opzioni. Ad esempio, cliccando sul pulsante <i>Modifica Nome<\/i> possiamo cambiare il nome del bot, ad esempio invece di <i>Pensieri Intelligenti<\/i>, scrivere <i>Idee Strampalate<\/i>. <i>Botpic<\/i> \u2014 \u00e8 l'avatar del bot, deve essere non meno di <i>150 x 150 px<\/i>. <i>Descrizione<\/i> \u2014 \u00e8 una breve descrizione che l'utente vede al primo avvio del bot, come risposta alla domanda: <i>Cosa pu\u00f2 fare questo bot?<\/i> <i>Informazioni<\/i> \u2014 una descrizione ancora pi\u00f9 breve, che viene trasmessa con il link al bot (<code>https:\/\/t.me\/SmartThoughtsBot<\/code>) o durante la visualizzazione delle informazioni su di esso.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f15ba92be1bfea827273f79616bd2a3a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRimane solo da configurare i comandi. Per farlo, facciamo clic sul pulsante <i>Modifica Comandi<\/i>. Per standardizzare la pratica degli utenti <i>Telegram<\/i> \u00e8 consigliato utilizzare sempre due comandi: <i>\/start<\/i> e <i>\/help<\/i>, e se il bot ha bisogno di impostazioni \u2014 un ulteriore comando \/settings. Il nostro bot \u00e8 semplice come una palla, quindi per ora non ha bisogno di impostazioni. Scriviamo i primi due comandi, che poi gestiremo nel codice. Ora, se nel campo di input l'utente inserir\u00e0 uno slash (il segno della barra obliqua: \/), apparir\u00e0 un elenco di comandi per una rapida selezione. Tutto come nell'immagine: a sinistra \u2014 impostiamo i comandi tramite il bot padre; a destra questi comandi sono gi\u00e0 disponibili per gli utenti nel nostro bot.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/b536b5fe7b8aad3d68877a7693ea0e6f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>funzione Yandex<\/h2>\n<p>\nOra, quando il nostro bot \u00e8 stato creato, passiamo a <i>Yandex.Cloud<\/i>, per creare una funzione che eseguir\u00e0 il codice del nostro bot. Se non hai mai lavorato con <i>Yandex.Cloud<\/i> , leggi il materiale <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/464739\/\"><b><i>Alice nel paese di Bitrix<\/i><\/b><\/a><\/noindex>, e poi \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/440374\/\"><b><i>Le funzioni di Yandex inviano email<\/i><\/b><\/a><\/noindex>. Sono quasi sicuro che questi due articoli relativamente brevi ti daranno una buona comprensione di base dell'argomento.<\/p>\n<p>Quindi, nella console <i>di Yandex.Cloud<\/i> , nel menu di navigazione a sinistra seleziona il punto <i>Cloud Functions<\/i>, e poi clicca sul pulsante <i>Crea funzione<\/i>. Assegna un nome e per te stesso una breve descrizione.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/67f313c60481c5ef84af8a28b4934621.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDopo aver premuto il pulsante <i>Crea<\/i> e dopo pochi secondi, la nuova funzione apparir\u00e0 nell'elenco di tutte le funzioni. Fai clic sul suo nome \u2014 ti porter\u00e0 alla pagina <i>Panoramica<\/i> della nostra funzione. Qui devi attivare (<i>On<\/i>) l'interruttore <i>Funzione pubblica<\/i>, affinch\u00e9 sia accessibile dal mondo esterno (per il <i>di Yandex.Cloud<\/i>) e il valore dei campi <i>Link per la chiamata<\/i> e <i>Identificatore<\/i> \u2014 tenere nascosto in profondit\u00e0 da tutti tranne che da se stessi e da Telegram, affinch\u00e9 la vostra funzione non possa essere invocata da vari truffatori.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ba45d357965d567ba33ab0ee65d2eb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra, utilizzando il menu a sinistra, passiamo a <i>Redattore<\/i> funzioni. Mettiamo da parte per un breve momento i nostri <i>Pensieri Intelligenti<\/i>, e creiamo una funzione modello minima per testare il funzionamento del nostro bot... D'altra parte, in questo contesto, questa funzione \u00e8 gi\u00e0 il nostro bot... In breve, ora e proprio qui faremo un bot semplicissimo che \"risponder\u00e0\" (cio\u00e8 invier\u00e0 indietro) le richieste degli utenti. Questo modello pu\u00f2 essere utilizzato ogni volta che crei nuovi bot di Telegram, per assicurarti che la connessione con <i>Telegram\u2019<\/i>funzioni correttamente. Clicchiamo su <i>Crea file<\/i>, lo chiamiamo <i>index.js<\/i>, e nell'editor di codice online <i>incolliamo il seguente codice in questo file:<\/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\">Nella console di Yandex.Cloud dovrebbe apparire pi\u00f9 o meno cos\u00ec:\n<\/code><\/pre>\n<p>\nSuccessivamente, un po' pi\u00f9 in basso indichiamo<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f0204be84468c9ae7ec1b9e4ca0dfdd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPunto di ingresso <i>index.bot<\/i> \u2014 <i>index<\/i>, dove <i>\u00e8 il nome del file (<\/i> \u2014 nome della funzione (<i>index.js<\/i>), e <i>bot<\/i> module.exports.bot<i>). Lascia gli altri campi \"come sono\" e in alto a destra clicca sul pulsante<\/i>Crea versione <i>. Dopo pochi secondi, questa versione della funzione verr\u00e0 creata. Nel breve termine, dopo il test<\/i>del webhook <i>, creeremo una nuova versione \u2014<\/i>Ora, quando abbiamo creato <i>Pensieri Intelligenti<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/48cd898f83bdc29d124600828bf2143f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Storage a Oggetti<\/h2>\n<p>\n, vediamo, mentre siamo nella console <i>funzione Yandex<\/i>, facciamo, mentre siamo nella console <i>di Yandex.Cloud<\/i>, creeremo il cosiddetto bucket (<i>bucket<\/i>, ovvero secchio in russo, non certamente bouquet) per la conservazione di file immagine che saranno utilizzati nel nostro bot <i>Pensieri Intelligenti<\/i>. Nel menu di navigazione a sinistra, selezioniamo la voce <i>Object Storage<\/i>, premiamo il pulsante <i>Crea bucket<\/i>, diamo un nome, per esempio, <i>img-bucket<\/i>, e, cosa pi\u00f9 importante, <i>Accesso in lettura agli oggetti<\/i> rendiamo pubblico \u2014 altrimenti Telegram non potr\u00e0 vedere le nostre immagini. Tutti gli altri campi rimangono invariati. Premi il pulsante <i>Crea bucket<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c890a42f7d043e03300434b2c4a0258b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDopo di che, l'elenco di tutti i bucket potrebbe apparire pi\u00f9 o meno cos\u00ec (se questo \u00e8 il tuo unico bucket):<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/34701231536742a7889b200ff49b08b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra ti propongo di cliccare sul nome del bucket e all'interno crearci una cartella per organizzare la conservazione delle immagini per le diverse tue applicazioni. Ad esempio, per il bot di Telegram, <i>Pensieri Intelligenti<\/i> ho creato una cartella chiamata <i>tg-bot-smart-thoughts<\/i> (non ti preoccupare, capir\u00f2 questo codice). Creane anche tu una.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c5707b5ba54fea5b548d62e097328650.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra puoi cliccare sul nome della cartella, entrarci e caricare i file:<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/ead320e587e1d161e2cd54a94b4ea0d4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nE cliccando sul nome del file\u2014ottenerlo <i>URL<\/i> per utilizzarlo nel nostro bot, e in generale\u2014da qualche parte (ma non pubblicarlo <i>URL<\/i> senza necessit\u00e0, poich\u00e9 il traffico da <i>Storage oggetti<\/i> \u00e8 a pagamento).<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/07a833430b0584161423f363f6685306.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEcco, insomma, tutto qui con <i>Storage oggetti<\/i>. Ora saprai cosa fare quando vedrai la richiesta di caricare file l\u00ec.<\/p>\n<h2>Webhook<\/h2>\n<p>\nAdesso impostiamo il <i>webhook<\/i> \u2014cio\u00e8, quando il bot riceve un aggiornamento (ad esempio, un messaggio da un utente), dal server <i>Telegram<\/i> verr\u00e0 inviato a noi <i>funzione Yandex<\/i> una richiesta (<i>request<\/i>) con i dati. Ecco la stringa che puoi semplicemente incollare nella barra degli indirizzi del browser e poi aggiornare la pagina (\u00e8 necessario farlo solo una volta): <code>https:\/\/api.telegram.org\/bot{bot_token}\/setWebHook?url={webhook_url}<\/code><br \/>\nBaster\u00e0 solo sostituire <i>{bot_token}<\/i> con il token che abbiamo ricevuto dal bot padre al momento della creazione del nostro bot, e <i>{webhook_url}<\/i> \u2014con <i>URL<\/i> il nostro <i>funzioni di Yandex<\/i>. Un momento! Ma <i>RosKomTsenzur<\/i> impedisce ai provider in RF di servire l'indirizzo <code>https:\/\/api.telegram.org<\/code>. Giusto. Ma tu inventa qualcosa. Puoi, per esempio, chiedere a tua nonna in Ucraina, Israele o Canada\u2014l\u00ec non ci sono censure \u00abrusso\u00bb, e Dio solo sa come vivono le persone senza di esse. Di conseguenza, la richiesta-risposta nell'impostare il webhook dovrebbe apparire cos\u00ec:<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/713834a1665520d3e471cd3d1831ac06.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nStiamo testando. Dovrebbe \u00abrispecchiare\u00bb.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ab0e97f9b0ca06295fe7f5f793aab2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nE cos\u00ec \u00e8. Le nostre congratulazioni\u2014ora <i>funzione Yandex<\/i> \u00e8 diventato <i>Telegram<\/i>-bot!<\/p>\n<h2>Pensieri Intelligenti<\/h2>\n<p>\nOra facciamo Pensieri Intelligenti. Il codice \u00e8 aperto e si trova su <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>GitHub<\/i><\/b><\/a><\/noindex>. \u00c8 ben commentato e contiene solo un centinaio di righe. Leggilo come una diva dell'opera leggendo il libretto! <\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/2ad0e96a2169d0859ccec836f151d3ea.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nClona il progetto e installa le dipendenze:<\/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>\nFai le modifiche necessarie nel file <i>index.js<\/i> (opzionale; puoi non modificare nulla). Crea <i>zip<\/i>-archivio, con il file <i>index.js<\/i> e la cartella <i>node_modules<\/i> all'interno, ad esempio chiamandolo <i>smart.zip<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c8c97707515338a01f8b8ed7f743c4a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra vai nel terminale alla nostra <i>funzioni di Yandex<\/i>, seleziona la scheda <i>ARCHIVIO ZIP<\/i>, clicca il bottone <i>Scegli il file<\/i>, e carica il nostro archivio <i>smart.zip<\/i>. Infine, in alto a destra, premi il pulsante <i>. Dopo pochi secondi, questa versione della funzione verr\u00e0 creata. Nel breve termine, dopo il test<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/96634c132848278ecc00a509e61b13f0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDopo qualche secondo, quando la funzione si aggiorna, testiamo di nuovo il nostro bot. Ora non \"rispecchia\" pi\u00f9, ma fornisce pensieri intelligenti!<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/0c683826b5ef2bdbbd0253de4691900a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPer oggi \u00e8 tutto. Altri articoli seguiranno. Chi \u00e8 interessato a leggere contenuti simili pu\u00f2 iscriversi alle notifiche per nuovi articoli. Puoi iscriverti qui, o su <i>Telegram<\/i>-canale <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/it_tutorial_zahar\"><i>IT Tutorial Zakhar<\/i><\/a><\/noindex>, o <i>Twitter<\/i> <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/mikezaharov\"><i>@mikezaharov<\/i><\/a><\/noindex>.<\/p>\n<h2>Link<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stmike\/tg-bot-smart-thoughts\"><b><i>Codice su 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: Un'introduzione per sviluppatori<\/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>Donazioni<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/yasobe.ru\/na\/vui\"><img decoding=\"async\" alt=\"Costruiamo un bot Telegram su Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/250f8765713080fcbbdaf56c04dc882f.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Fonte: <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.1.1 - 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\/it\/blog\/stroim-telegram-bot-v-yandeks-oblake\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47Costruiamo un Telegram bot su Yandex.Cloud | ProHoster","description":"Oggi, utilizzando materiale di recupero, costruiremo in.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/stroim-telegram-bot-v-yandeks-oblake","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/41315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=41315"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/41315\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/41316"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=41315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=41315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=41315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}