Oggi, da materiali improvvisati, raccoglieremo 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:
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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:
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.
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.
Successivamente, un elenco di tutti i bucket potrebbe essere simile a questo (se questo è il tuo unico bucket):
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.
Ora puoi fare clic sul nome della cartella, entrarci e caricare i file:
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).
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:
Test. Dovrebbe essere rispecchiato.
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
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.
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.
Tra pochi secondi, quando la funzione sarà aggiornata, testeremo nuovamente il nostro bot. Ora non "rispecchia", ma offre pensieri intelligenti!
È tutto per oggi. Seguono altri articoli. Se sei interessato a leggere questo, iscriviti alle notifiche di nuovi articoli. Puoi iscriverti qui o Telegram-canale
riferimenti
dona
Fonte: habr.com