{"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 di Telegram in Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/4a758744e4fc6bc797d270fa1bc42ef3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOggi, con materiali di fortuna, assembleremo in <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/\"><i>Yandex.Cloud<\/i><\/a><\/noindex> <i>bot di Telegram<\/i> con l'uso di <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/services\/functions\"><i>Yandex Cloud Functions<\/i><\/a><\/noindex> (o <i>Funzioni 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 oggetti<\/i> \u2014 per chiarezza). Il codice sar\u00e0 in <i>Node.js<\/i>. Tuttavia, c'\u00e8 una questione piccante: c'\u00e8 un'organizzazione chiamata, diciamo cos\u00ec, <i>Roskomnadzor<\/i> (la censura \u00e8 vietata dall'articolo 29 della Costituzione della Federazione Russa), che non consente ai provider internet in Russia di inviare richieste a <i>Telegram API<\/i> all'indirizzo: <code>https:\/\/api.telegram.org\/<\/code>. Ma noi non lo faremo \u2014 se non \u00e8 possibile, non \u00e8 possibile. Dopotutto, nel nostro bagaglio abbiamo i cosiddetti <i>webhook<\/i> \u2014 con cui non facciamo richieste a un indirizzo specifico, ma semplicemente inviamo la nostra richiesta come risposta a qualsiasi richiesta che ci viene fatta. 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 di eventuali organizzazioni governative menzionati in questo articolo sono fittizi, e qualsiasi coincidenza con i 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 di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/6b7aca248999621a20f8a0ec29e75c75.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Puoi metterlo alla prova \u2014 ecco il nome: <b><i>@SmartThoughtsBot<\/i><\/b>. Ho notato il pulsante <i>\u00abAbilit\u00e0 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 pubblicizzandosi a vicenda. Come 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 un'abilit\u00e0<\/i><\/b><\/a><\/noindex>. Adesso (dopo aver apportato alcune modifiche gi\u00e0 dopo la pubblicazione dell'articolo sopra citato) sullo 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 di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/e92c340f8d947ba9252e0fcab0511ce6.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Creazione di un bot<\/h2>\n<p>\nSpero che questo tutorial sia utile a tutti, compresi i principianti \u00abcostruttori di bot\u00bb. Pertanto, in questa sezione descriver\u00f2 piuttosto dettagliatamente come creare <i>Telegram<\/i>per chi non ha bisogno di queste informazioni, passate alle sezioni successive. <\/p>\n<p>Apriamo l'app <i>Telegaram<\/i>, chiamiamo il padre di tutti i bot (loro sono come le persone) \u2014 <b><i>@BotFather<\/i><\/b> \u2014 e per cominciare diamo il comando \/help, per rinfrescare la memoria su cosa possiamo fare. Ora ci interessa il comando <i>\/newbot<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in 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 temporaneamente un altro bot (poi lo eliminer\u00f2). Lo chiamer\u00f2 <i>DemoHabrBot<\/i>. I nomi (<i>username<\/i>) di tutti i bot di Telegram devono finire con la parola <i>bot<\/i>, ad esempio: <i>MyCoolBot<\/i> o <i>my_cool_bot<\/i> \u2014 questo \u00e8 per i bot. Ma prima diamo un nome al bot (<i>name<\/i>) \u2014 e questo \u00e8 per le persone. Il nome pu\u00f2 essere in qualsiasi lingua, contenere spazi e non \u00e8 necessario che finisca con la parola <i>bot<\/i>, e non \u00e8 nemmeno necessario che sia unico. In questo esempio ho chiamato questo bot <i>Demo Habr<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in 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). Lo chiameremo <i>DemoHabrBot<\/i>. Tutto ci\u00f2 che riguarda il nome del bot (<i>name<\/i>) non ha nulla a che fare con il suo nome \u2014 <i>username<\/i> (o lo ha, ma in modo opposto). Dopo aver creato con successo un nome unico per il bot, dobbiamo copiare e mantenere (in assoluta segretezza!) il token mostrato nello screenshot dalla freccia rossa. Con esso installeremo tra poco il webhook da <i>Telegram<\/i>webhook alla nostra <i>funzione Yandex<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/78254946c9f763d212a1952bac6c706f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra diamo il comando al padre di tutti i bot: <i>\/mybots<\/i>, e lui ci mostrer\u00e0 l'elenco di tutti i bot che abbiamo creato. Lasciamo per ora in pace il nostro bot appena sfornato <i>Demo Habr<\/i> (\u00e8 stato creato per mostrare come creare bot, ma lo utilizzeremo oggi per altri scopi dimostrativi), e consideriamo il bot <i>Pensieri Intelligenti<\/i> (<i>@SmartThoughtsBot<\/i>). Clicchiamo sul pulsante con il suo nome nell'elenco dei bot.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in 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. Cliccando il pulsante <i>Modifica\u2026<\/i> passeremo alla modifica di un'opzione. Ad esempio, facendo clic 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> \u00e8 l'avatar del bot, deve essere di almeno <i>150 x 150 px<\/i>. <i>Descrizione<\/i> \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> \u00e8 una descrizione ancora pi\u00f9 breve che viene inviata con il link al bot (<code>https:\/\/t.me\/SmartThoughtsBot<\/code>) o quando si visualizzano le informazioni su di esso.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f15ba92be1bfea827273f79616bd2a3a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCi resta solo da impostare i comandi. A questo scopo, facciamo clic sul pulsante <i>Modifica Comandi<\/i>. Per standardizzare la pratica degli utenti <i>Telegram<\/i> si raccomanda di utilizzare sempre due comandi: <i>\/start<\/i> e <i>\/help<\/i>, e se il bot ha bisogno di impostazioni, 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 elaboreremo nel codice. Ora, se nel campo di input l'utente inserisce uno slash (il simbolo della barra obliqua: \/), apparir\u00e0 un elenco di comandi per una rapida selezione. Tutto come nella figura: a sinistra 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 di Telegram in 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 che 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 e-mail<\/i><\/b><\/a><\/noindex>. Sono quasi sicuro che questi due articoli relativamente brevi siano sufficienti per una comprensione di base dell'argomento.<\/p>\n<p>Quindi, nella console di <i>Yandex.Cloud<\/i> nel menu di navigazione a sinistra, seleziona l'elemento <i>Cloud Functions<\/i>, quindi premi il pulsante <i>Crea funzione<\/i>. Assegna un nome e per te \u2014 una breve descrizione.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in 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 qualche secondo, la nuova funzione apparir\u00e0 nell'elenco di tutte le funzioni. Clicca sul suo nome \u2014 questo ci 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 <i>Yandex.Cloud<\/i>), e i valori dei campi <i>Collegamento per chiamata<\/i> e <i>Identificatore<\/i> \u2014 mantenere segreto da tutti tranne se stessi e Telegram, affinch\u00e9 la vostra funzione non possa essere richiamata da vari truffatori.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ba45d357965d567ba33ab0ee65d2eb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra, usando il menu a sinistra, andiamo a <i>Editor<\/i> funzioni. Mettiamo da parte per un breve momento i nostri <i>Pensieri Intelligenti<\/i>, e creiamo una funzione base per testare il funzionamento del nostro bot\u2026 Comunque, in questo contesto, questa funzione \u00e8 il nostro bot\u2026 In breve, adesso e proprio qui faremo il nostro semplice bot che \"rispecchier\u00e0\" (cio\u00e8 rimander\u00e0) le richieste degli utenti. Questo template pu\u00f2 essere sempre utilizzato quando si creano nuovi bot di Telegram, per assicurarsi che la connessione con <i>Telegram<\/i>funzioni correttamente. Clicchiamo su <i>Crea file<\/i>, lo chiamiamo <i>index.js<\/i>, e nell'editor di codice online <i>inseriamo nel file il seguente codice:<\/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\">module.exports.bot = async (event) =&gt; {\n  \n  const body = JSON.parse(event.body);\n\n  const msg = {\n    'method': 'sendMessage',\n    'chat_id': body.message.chat.id,\n    'text': body.message.text\n  };\n\n  return {\n    'statusCode': 200,\n    'headers': {\n      'Content-Type': 'application\/json'\n    },\n    'body': JSON.stringify(msg),\n    'isBase64Encoded': false\n  };\n};\n<\/code><\/pre>\n<p>\nNella console di Yandex.Cloud dovrebbe apparire circa cos\u00ec:<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/f0204be84468c9ae7ec1b9e4ca0dfdd9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nScendiamo un po' pi\u00f9 in basso e indichiamo <i>Il punto di ingresso<\/i> \u2014 <i>index.bot<\/i>, dove <i>index<\/i> \u00e8 il nome del file (<i>index.js<\/i>), e <i>bot<\/i> \u2014 il nome della funzione (<i>module.exports.bot<\/i>). Tutti gli altri campi li lasciamo \u00abcos\u00ec come sono\u00bb, e nell'angolo in alto a destra facciamo clic sul pulsante <i>Crea versione<\/i>. Dopo pochi secondi, questa versione della funzione sar\u00e0 creata. A breve, dopo i test <i>webhook<\/i>, creeremo una nuova versione \u2014 <i>Pensieri Intelligenti<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/48cd898f83bdc29d124600828bf2143f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Storage oggetti<\/h2>\n<p>\nOra che abbiamo creato <i>Funzione Yandex<\/i>, mentre siamo nella console <i>Yandex.Cloud<\/i>, creiamo un cosiddetto bucket (<i>bucket<\/i>, ovvero un contenitore in italiano, non un mazzo) per memorizzare i file delle immagini che saranno utilizzati nel nostro bot. <i>Pensieri Intelligenti<\/i>Nel menu di navigazione a sinistra, selezioniamo <i>Object Storage<\/i>, premiamo il pulsante <i>Crea bucket<\/i>, diamo un nome, ad esempio, <i>img-bucket<\/i>, e, cosa fondamentale, <i>Accesso in lettura agli oggetti<\/i> rendiamo pubblico \u2014 altrimenti Telegram non vedr\u00e0 le nostre immagini. Tutti gli altri campi rimangono invariati. Facciamo clic sul pulsante <i>Crea bucket<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c890a42f7d043e03300434b2c4a0258b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDopo di ci\u00f2, l'elenco di tutti i bucket potrebbe apparire cos\u00ec (se questo \u00e8 l'unico bucket che hai):<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/34701231536742a7889b200ff49b08b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAdesso ti propongo di cliccare sul nome del bucket e all'interno di esso creare una cartella per organizzare la memorizzazione delle immagini per le tue diverse applicazioni. Ad esempio, per il bot di Telegram <i>Pensieri Intelligenti<\/i> ho creato una cartella chiamata <i>tg-bot-smart-thoughts<\/i> (tranquillo, capir\u00f2 questo codice). Crea anche tu qualcosa.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c5707b5ba54fea5b548d62e097328650.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra puoi fare clic sul nome della cartella, accedervi e caricare file:<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in 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 \u2014 ottenerlo. <i>URL<\/i> per l'utilizzo nel nostro bot e ovunque (ma, non pubblicate questo <i>URL<\/i> senza necessit\u00e0, poich\u00e9 il traffico proveniente da <i>Storage Object<\/i> \u00e8 tariffato).<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/07a833430b0584161423f363f6685306.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEcco, in sostanza, tutto riguardo a <i>Storage Object<\/i>. Ora saprete cosa fare quando vedete l'invito a caricare file l\u00ec.<\/p>\n<h2>Webhook<\/h2>\n<p>\nOra installeremo <i>il webhook<\/i> cio\u00e8, quando il bot riceve un aggiornamento (ad esempio, un messaggio dall'utente), da <i>Telegram<\/i> verr\u00e0 inviato al nostro <i>funzione Yandex<\/i> una richiesta (<i>request<\/i>) con i dati. Ecco la stringa che pu\u00f2 essere facilmente inserita nella barra degli indirizzi del browser e poi aggiornare la pagina (questo deve essere fatto solo una volta): <code>https:\/\/api.telegram.org\/bot{bot_token}\/setWebHook?url={webhook_url}<\/code><br \/>\nDobbiamo solo sostituire <i>{bot_token}<\/i> con il token ricevuto da noi dal bot padre durante la creazione del nostro bot, e <i>{webhook_url}<\/i> con <i>URL<\/i> il nostro <i>Funzioni Yandex<\/i>. Un attimo! Ma <i>Roskomnadzor<\/i> impedisce ai fornitori in RF di servire l'indirizzo <code>https:\/\/api.telegram.org<\/code>. S\u00ec, \u00e8 vero. Ma trovate un modo. Potete, ad esempio, chiedere a vostra nonna in Ucraina, Israele o Canada \u2014 l\u00ec non ci sono \u00abrosskomtsenzur\u00bb, e solo Dio sa come vivono le persone senza di essa. Alla fine, la richiesta-risposta durante l'installazione del webhook dovrebbe apparire cos\u00ec:<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in 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 di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/3ab0e97f9b0ca06295fe7f5f793aab2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCos\u00ec \u00e8. Le nostre congratulazioni \u2014 ora <i>Funzione Yandex<\/i> \u00e8 diventato <i>Telegram<\/i>-bot!<\/p>\n<h2>Pensieri Intelligenti<\/h2>\n<p>\nOra realizziamo 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 conta solo un centinaio di righe. Leggilo come un'operista legge il libretto! <\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in 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>\nApporta le modifiche necessarie al file <i>index.js<\/i> (opzionale; puoi anche non cambiarlo). Crea un <i>zip<\/i>-archivio, con il file <i>index.js<\/i> e la cartella <i>node_modules<\/i> all'interno, ad esempio con il nome <i>smart.zip<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/c8c97707515338a01f8b8ed7f743c4a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOra vai nella console alla nostra <i>Funzioni Yandex<\/i>, seleziona la scheda <i>ZIP-archivio<\/i>, clicca sul pulsante <i>Seleziona file<\/i>, e carica il nostro archivio <i>smart.zip<\/i>. Infine, in alto a destra, premi il pulsante <i>Crea versione<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Costruiamo un bot di Telegram in 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 di Telegram in Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/0c683826b5ef2bdbbd0253de4691900a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c8 tutto per oggi. Altri articoli seguiranno. Per chi \u00e8 interessato a letture simili, iscriviti alle notifiche sui nuovi articoli. Puoi iscriverti qui, o al <i>Telegram<\/i>-canale <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/it_tutorial_zahar\"><i>IT Tutorial Zahar<\/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 di Telegram in 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 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0438\u0437 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043c\u044b \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0435 Telegram-\u0431\u043e\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Yandex Cloud Functions (\u0438\u043b\u0438 \u042f\u043d\u0434\u0435\u043a\u0441-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438) \u0438 Yandex Object Storage (\u0438\u043b\u0438 \u041e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u2014 \u0434\u043b\u044f \u044f\u0441\u043d\u043e\u0441\u0442\u0438). \u041a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 Node.js. \u041e\u0434\u043d\u0430\u043a\u043e, \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u043f\u0438\u043a\u0430\u043d\u0442\u043d\u043e\u0435 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u2014 \u043d\u0435\u043a\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a, \u0420\u043e\u0441\u0441\u041a\u043e\u043c\u0426\u0435\u043d\u0437\u0443\u0440 (\u0446\u0435\u043d\u0437\u0443\u0440\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 29 \u041a\u043e\u043d\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u0438 \u0420\u0424), \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/stroim-telegram-bot-v-yandeks-oblake\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"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 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0435 Telegram-\u0431\u043e\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Yandex Cloud Functions (\u0438\u043b\u0438 \u042f\u043d\u0434\u0435\u043a\u0441-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438) \u0438 Yandex Object Storage (\u0438\u043b\u0438 \u041e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u2014 \u0434\u043b\u044f \u044f\u0441\u043d\u043e\u0441\u0442\u0438). \u041a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 Node.js. \u041e\u0434\u043d\u0430\u043a\u043e, \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u043f\u0438\u043a\u0430\u043d\u0442\u043d\u043e\u0435 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u2014 \u043d\u0435\u043a\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a, \u0420\u043e\u0441\u0441\u041a\u043e\u043c\u0426\u0435\u043d\u0437\u0443\u0440 (\u0446\u0435\u043d\u0437\u0443\u0440\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 29 \u041a\u043e\u043d\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u0438 \u0420\u0424), \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/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 bot Telegram su Yandex.Cloud | ProHoster","description":"Oggi, utilizzando materiali a disposizione, costruiremo un bot Telegram su Yandex.Cloud con Yandex Cloud Functions (o funzioni Yandex per brevit\u00e0) e Yandex Object Storage (o Archiviazione degli Oggetti per chiarezza). Il codice sar\u00e0 in Node.js. Tuttavia, c'\u00e8 una situazione piuttosto delicata: un'organizzazione chiamata, per cos\u00ec dire, RossKomCenzur (la censura \u00e8 vietata dall'articolo 29 della Costituzione della Federazione Russa), impedisce ai fornitori di servizi Internet.","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 \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0435 Telegram-\u0431\u043e\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Yandex Cloud Functions (\u0438\u043b\u0438 \u042f\u043d\u0434\u0435\u043a\u0441-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u2014 \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438) \u0438 Yandex Object Storage (\u0438\u043b\u0438 \u041e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u2014 \u0434\u043b\u044f \u044f\u0441\u043d\u043e\u0441\u0442\u0438). \u041a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 Node.js. \u041e\u0434\u043d\u0430\u043a\u043e, \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u043f\u0438\u043a\u0430\u043d\u0442\u043d\u043e\u0435 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u2014 \u043d\u0435\u043a\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c, \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a, \u0420\u043e\u0441\u0441\u041a\u043e\u043c\u0426\u0435\u043d\u0437\u0443\u0440 (\u0446\u0435\u043d\u0437\u0443\u0440\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 29 \u041a\u043e\u043d\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u0438 \u0420\u0424), \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c","og:url":"https:\/\/prohoster.info\/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"},"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}]}}