Costruire un bot di Telegram in Yandex.Cloud

Costruire un bot di Telegram in Yandex.Cloud

Oggi, da materiali improvvisati, raccoglieremo Yandex.Cloud Bot Telegram con Funzioni cloud di Yandex (o Funzioni Yandex per brevità) e Archiviazione oggetti Yandex (o Archiviazione oggetti - per chiarezza). Il codice sarà attivo Node.js. Tuttavia, c'è una circostanza piccante: una certa organizzazione chiamata, diciamo, RossKomCensura (la censura è vietata dall'articolo 29 della Costituzione della Federazione Russa), non consente ai provider Internet in Russia di trasferire richieste a API di Telegram per indirizzo: https://api.telegram.org/. Beh, non lo faremo - no, no. In effetti, nella nostra borsa ci sono i cosiddetti. webhook - con il loro aiuto, non effettuiamo richieste a un indirizzo specifico, ma inviamo solo la nostra richiesta come risposta a qualsiasi richiesta a noi. Cioè, come a Odessa, rispondiamo a una domanda con una domanda. Ecco perché API di Telegram non apparirà nel nostro codice.

DisclaimerI nomi di tutte le organizzazioni statali menzionate in questo articolo sono fittizi e le possibili coincidenze con i nomi delle organizzazioni della vita reale sono accidentali.

Quindi, creeremo un bot che ci fornirà pensieri intelligenti. Esattamente come nella foto:

Costruire un bot di Telegram in Yandex.Cloud

Puoi provarlo in azione - ecco il nome: @SmartThoughtsBot. Notare il pulsante "L'abilità di Alice"? Questo perché il bot è una sorta di "compagno" per l'omonimo L'abilità di Alice, cioè. svolge le stesse funzioni di L'abilità di Alice e, forse, che possano coesistere pacificamente pubblicizzandosi a vicenda. Informazioni su come creare Abilità di pensiero intelligente descritto nell'articolo Alice ottiene l'abilità. Ora (dopo aver apportato alcune modifiche dopo la pubblicazione dell'articolo di cui sopra) su uno smartphone questo abilità sarà simile a questo:

Costruire un bot di Telegram in Yandex.Cloud

Creazione di bot

Vorrei che questo tutorial fosse utile a tutti, incl. e principianti "costruttori di bot". Pertanto, in questa sezione descriverò in dettaglio come creare in generale in Telegram'e bot. Per coloro che non hanno bisogno di queste informazioni, passare alle sezioni successive.

Apri l'applicazione Telegaram, chiamiamo il padre di tutti i robot (hanno tutto come le persone) - @BotPadre - e per cominciare, gli daremo il comando / help per rinfrescarci la memoria di ciò che possiamo fare. Ora siamo interessati alla squadra / newbot.

Costruire un bot di Telegram in Yandex.Cloud

Poiché il bot qui descritto è già stato creato, a scopo dimostrativo, creerò per breve tempo un altro bot (poi lo eliminerò). Lo chiamo DemoHabrBot. Nomi (nome utente) tutti i bot di Telegram devono terminare con una parola museruola, ad esempio: MyCoolBot o mio_cool_bot Questo è per i bot. Ma prima, dai un nome al bot (Nome) è per le persone. Il nome può essere in qualsiasi lingua, contenere spazi, non deve terminare con una parola museruolae non deve nemmeno essere univoco. In questo esempio, ho chiamato questo bot Dimostrazione Habr.

Costruire un bot di Telegram in Yandex.Cloud

Ora scegli un nome per il bot (nome utente, quello per i bot). Chiamiamolo DemoHabrBot. Tutto ciò che riguarda il nome del bot (Nome) non è affatto correlato al suo nome - nome utente (o si applica, ma esattamente il contrario). Dopo aver creato con successo un nome bot univoco, dobbiamo copiare e salvare (con la massima riservatezza!) il token mostrato nello screenshot con una freccia rossa. Con il suo aiuto, installeremo in seguito il file in uscita Telegram'un webhook per il nostro Funzione Yandex.

Costruire un bot di Telegram in Yandex.Cloud

E ora daremo il comando al padre di tutti i robot: /mybote ci mostrerà un elenco di tutti i bot che abbiamo creato. Lasciamo stare il bot appena sfornato per ora Dimostrazione Habr (è stato creato per mostrare come creare bot, ma lo useremo oggi per altri scopi dimostrativi), e considera il bot Pensieri intelligenti (@SmartThoughtsBot). Fai clic sul pulsante con il suo nome nell'elenco dei bot.

Costruire un bot di Telegram in Yandex.Cloud

Qui è dove possiamo impostare il nostro bot. Premendo un pulsante Modificare… passeremo alla modifica dell'una o dell'altra opzione. Ad esempio, facendo clic sul pulsante Modifica nome possiamo cambiare il nome del bot, diciamo invece di Pensieri intelligenti, Scrivi idee folli. Bopic - questo è l'avatar del bot, deve essere almeno 150 x 150 px. Descrizione è una breve descrizione che l'utente vede quando il bot viene lanciato per la prima volta, come risposta alla domanda: Cosa può fare questo robot? Chi siamo - una descrizione ancora più breve, che viene trasmessa con un collegamento al bot (https://t.me/SmartThoughtsBot) o durante la visualizzazione di informazioni a riguardo.

Costruire un bot di Telegram in Yandex.Cloud

Abbiamo solo bisogno di impostare i comandi. Per fare ciò, premere il pulsante Modifica comandi. Per standardizzare le pratiche degli utenti Telegram consiglia di utilizzare sempre due comandi: / inizio и /Aiutoe se il bot necessita di impostazioni, un comando aggiuntivo /settings. Il nostro bot è semplice come una palla, quindi non ha ancora bisogno di impostazioni. Scriviamo i primi due comandi, che poi elaboreremo nel codice. Ora, se l'utente inserisce una barra (carattere barra: /) nel campo di immissione, verrà visualizzato un elenco di comandi per la loro selezione rapida. Tutto è come nella foto: a sinistra - impostiamo i comandi tramite il bot-padre; a destra, questi comandi sono già disponibili per gli utenti nel nostro bot.

Costruire un bot di Telegram in Yandex.Cloud

Funzione Yandex

Ora che il nostro bot è stato creato, andiamo a Yandex.Cloudper creare una funzione che eseguirà il nostro codice bot. Se non hai lavorato con Yandex.Cloud leggi il materiale Alice nella terra di Bitrix, e poi - Le funzioni Yandex inviano posta. Sono quasi sicuro che questi due articoli relativamente piccoli saranno sufficienti per avere una comprensione di base dell'argomento.

Quindi in console Yandex.Clouds nel menu di navigazione a sinistra selezionare la voce Funzioni cloud, quindi premere il pulsante Crea una funzione. Gli diamo un nome e per noi stessi una breve descrizione.

Costruire un bot di Telegram in Yandex.Cloud

Dopo aver fatto clic sul pulsante creare e dopo un paio di secondi, la nuova funzione apparirà nell'elenco di tutte le funzioni. Fai clic sul suo nome: questo ci porterà alla pagina panoramica la nostra funzione. Qui è necessario abilitareOn) interruttore funzione pubblicarenderla disponibile dall'esterno (ad es Yandex.Clouds) del mondo e il valore dei campi Link alla chiamata и Р РґРμРЅС, РёС "РёРєР ° С, РѕС - tienilo in gran segreto da tutti tranne te stesso e Telegram, in modo che vari truffatori non possano chiamare la tua funzione.

Costruire un bot di Telegram in Yandex.Cloud

Ora usando il menu a sinistra vai a editore funzioni. Mettiamo da parte per un attimo il nostro Pensieri intelligenti, e creare una funzione template minima per verificare le prestazioni del nostro bot... Tuttavia, in questo contesto, questa funzione è il nostro bot... In breve, ora e proprio qui realizzeremo il bot più semplice che "rispecchierà" ( ovvero inviare indietro) le richieste degli utenti. Questo modello può sempre essere utilizzato durante la creazione di nuovi bot di Telegram per assicurarsi che la comunicazione con Telegramma'om funziona bene. Clic Crea file, chiamalo index.jse in linea Editor di codice incolla il seguente codice in questo file:

module.exports.bot = async (event) => {
  
  const body = JSON.parse(event.body);

  const msg = {
    'method': 'sendMessage',
    'chat_id': body.message.chat.id,
    'text': body.message.text
  };

  return {
    'statusCode': 200,
    'headers': {
      'Content-Type': 'application/json'
    },
    'body': JSON.stringify(msg),
    'isBase64Encoded': false
  };
};

Nella console Yandex.Cloud, dovrebbe assomigliare a questo:

Costruire un bot di Telegram in Yandex.Cloud

Di seguito, indichiamo punto d'entrata - indice.botDove Index questo è il nome del file (index.js), e museruola - nome della funzione (module.exports.bot). Lascia tutti gli altri campi "così come sono" e nell'angolo in alto a destra fai clic sul pulsante Crea versione. Dopo pochi secondi, verrà creata questa versione della funzione. Subito dopo il test webhook, creeremo una nuova versione − Pensieri intelligenti.

Costruire un bot di Telegram in Yandex.Cloud

Archiviazione oggetti

Ora che abbiamo impostato Funzione Yandexandiamo mentre siamo nella console Yandex.Clouds, creare un cosiddetto. secchio (benna, cioè. un secchio in russo, non un bouquet) per l'archiviazione dei file di immagine che verranno utilizzati nel nostro bot Pensieri intelligenti. Seleziona dal menu di navigazione a sinistra Storage degli oggetti, premi il bottone Crea secchio, assegnagli un nome, ad esempio, img-bucket, e, soprattutto, Accesso in lettura agli oggetti renderlo pubblico, altrimenti Telegram non vedrà le nostre foto. Tutti gli altri campi rimangono invariati. Premiamo il pulsante Crea secchio.

Costruire un bot di Telegram in Yandex.Cloud

Successivamente, un elenco di tutti i bucket potrebbe essere simile a questo (se questo è il tuo unico bucket):

Costruire un bot di Telegram in Yandex.Cloud

Ora propongo di fare clic sul nome del secchio e al suo interno creare una cartella per organizzare l'archiviazione delle immagini per diverse applicazioni. Ad esempio, per un bot di telegramma Pensieri intelligenti ho creato una cartella chiamata tg-bot-pensieri-intelligenti (Niente, capirò questa cifra). Creane uno anche tu.

Costruire un bot di Telegram in Yandex.Cloud

Ora puoi fare clic sul nome della cartella, entrarci e caricare i file:

Costruire un bot di Telegram in Yandex.Cloud

E facendo clic sul nome del file, prendilo URL da utilizzare nel nostro bot e, in generale, ovunque (ma non pubblicare questo URL inutilmente, dal momento che il traffico da archiviazione degli oggetti addebitato).

Costruire un bot di Telegram in Yandex.Cloud

Qui, infatti, è tutto archiviazione degli oggetti. Ora saprai cosa fare quando vedrai la richiesta di caricare i file lì.

Webhook

Ora installeremo webhook - cioè. quando il bot riceve un aggiornamento (ad esempio un messaggio dall'utente) dal server Telegram nel nostro Funzione Yandex richiesta verrà inviatarichiesta) con i dati. Ecco una stringa che puoi semplicemente incollare nel campo dell'indirizzo del browser, quindi aggiornare la pagina (questo deve essere fatto solo una volta): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Basta sostituire {bot_token} al token che abbiamo ricevuto dal bot padre durante la creazione del nostro bot, e {URL_webhook} - su URL il nostro Funzioni Yandex. Apetta un minuto! Ma RossKomCensura vieta ai fornitori nella Federazione Russa di servire l'indirizzo https://api.telegram.org. Sì, è giusto. Ma puoi pensare a qualcosa. Dopotutto, puoi, ad esempio, chiederlo a tua nonna in Ucraina, Israele o Canada: lì non ci sono "censure russe" e solo Dio sa come vivono le persone senza di essa. Di conseguenza, la richiesta-risposta durante l'installazione del webhook dovrebbe essere simile a questa:

Costruire un bot di Telegram in Yandex.Cloud

Test. Dovrebbe essere rispecchiato.

Costruire un bot di Telegram in Yandex.Cloud

Questo è vero. Le nostre congratulazioni - ora Funzione Yandex è diventato Telegram-bot!

Pensieri intelligenti

E ora facciamo i pensieri intelligenti. Il codice è aperto e si trova su GitHub. È piuttosto ben commentato ed è lungo solo un centinaio di righe. Leggilo come un libretto di una diva d'opera!

Costruire un bot di Telegram in Yandex.Cloud

Clona il progetto e installa le dipendenze:

git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i

Apporta le modifiche necessarie al file index.js (facoltativo; non puoi modificare nulla). Creare chiusura-archive, con un file index.js e cartella nodi_moduli all'interno, ad esempio, chiamato smart.zip.

Costruire un bot di Telegram in Yandex.Cloud

Ora vai nella console al nostro Funzioni Yandex, seleziona la scheda Archivio ZIP, premi il bottone Seleziona un filee scarica il nostro archivio smart.zip. Infine, nell'angolo in alto a destra, fai clic sul pulsante Crea versione.

Costruire un bot di Telegram in Yandex.Cloud

Tra pochi secondi, quando la funzione sarà aggiornata, testeremo nuovamente il nostro bot. Ora non "rispecchia", ma offre pensieri intelligenti!

Costruire un bot di Telegram in Yandex.Cloud

È tutto per oggi. Seguono altri articoli. Se sei interessato a leggere questo, iscriviti alle notifiche di nuovi articoli. Puoi iscriverti qui o Telegram-canale Tutorial IT ZacharO Twitter @mikezaharov.

riferimenti

Codice su GitHub
Funzioni cloud di Yandex
Archiviazione oggetti Yandex
Bot: un'introduzione per gli sviluppatori
API Telegram Bot

dona

Costruire un bot di Telegram in Yandex.Cloud

Fonte: habr.com

Aggiungi un commento