Guida: come realizzare un semplice bot Telegram in JS per un principiante nella programmazione

Ho iniziato ad immergermi nel mondo dell'IT solo tre settimane fa. Scherzi a parte, tre settimane fa non capivo nemmeno la sintassi HTML, e la mia introduzione ai linguaggi di programmazione si è conclusa con un curriculum scolastico su Pascal di 10 anni fa. Tuttavia, ho deciso di andare a un campo informatico, dove sarebbe stato carino che i bambini realizzassero un bot. Ho deciso che non era poi così difficile.

È iniziato così un lungo viaggio in cui:

  • distribuito un server cloud con Ubuntu,
  • registrato su GitHub,
  • imparato la sintassi JavaScript di base,
  • leggere un sacco di articoli in inglese e russo,
  • finalmente ho creato un bot,
  • Alla fine ho scritto questo articolo.

Il risultato finale era più o meno questo:

Guida: come realizzare un semplice bot Telegram in JS per un principiante nella programmazione

Dirò subito che questo è un articolo per principianti, solo per capire come fare le cose di base da zero.

E anche - per i programmatori esperti - tanto per farli ridere un po'.

1. Come scrivere codice in JS?

Ho capito che valeva la pena capire prima almeno la sintassi della lingua. La scelta è caduta su JavaScript, semplicemente perché il passo successivo per me era creare un'applicazione in ReactNative. Ho iniziato con tasso di cambio su Codecademy e sono rimasto molto soddisfatto. I primi 7 giorni sono gratuiti. Progetti reali. Raccomando. Per completarlo ci sono volute circa 25 ore. In realtà non tutto è servito a nulla. Ecco come appare la struttura del corso e il primo blocco in dettaglio.

Guida: come realizzare un semplice bot Telegram in JS per un principiante nella programmazione

2. Come registrare un bot?

Questo mi ha aiutato molto all'inizio questo articolo dal blog di un certo Archakov. Mastica fin dall'inizio. Ma la cosa principale sono le istruzioni per registrare un bot. Non riesco a scriverlo meglio e, poiché questa è la parte più semplice, scriverò solo il succo. Devi creare un bot e ottenere la sua API. Questo viene fatto tramite un altro bot: @BotFather. Trovalo su Telegram, scrivigli, segui il semplice percorso e ottieni (salva!) una chiave API (questo è un insieme di numeri e lettere). Mi è tornato utile più tardi.

Guida: come realizzare un semplice bot Telegram in JS per un principiante nella programmazione

3. Che aspetto ha il codice del bot?

Dopo aver studiato a lungo gli articoli, mi sono reso conto che valeva la pena utilizzare una sorta di libreria (codice di terze parti in formato modulo) per non dovermi preoccupare di studiare l'API di Telegram e creare grandi porzioni di codice da zero. Ho trovato il quadro telegrafo, che doveva essere in qualche modo collegato a qualcosa utilizzando npm o Yarn. Questo è più o meno il modo in cui ho capito allora in cosa consisteva l'implementazione di un bot. Ridi qui. Non mi offenderò. Gli esempi a fondo pagina mi hanno aiutato maggiormente durante la successiva creazione del bot:

Guida: come realizzare un semplice bot Telegram in JS per un principiante nella programmazione

3. Come creare il tuo server cloud per 100 rubli

Dopo molte ricerche, mi sono reso conto che il comando 'npm' nell'immagine sopra si riferisce alla riga di comando. La riga di comando è ovunque, ma per poterla eseguire è necessario installare NodePackageManager. Il problema era che stavo programmando su un PixelBook con ChromeOS. Tralascerò qui un lungo blocco su come ho imparato Linux: per la maggior parte è vuoto e non necessario. Se hai Windows o un MacBook, hai già una console.

In poche parole ho installato Linux tramite Crostini.

Tuttavia, nel processo, mi sono reso conto che affinché il bot funzioni costantemente (e non solo quando il mio computer è acceso), ho bisogno di un server cloud. Ho scelto vscale.io Ho speso 100 rubli e ho comprato il server Ubuntu più economico (vedi foto).

Guida: come realizzare un semplice bot Telegram in JS per un principiante nella programmazione

4. Come preparare un server per eseguire un bot

Successivamente, mi sono reso conto che dovevo creare una sorta di cartella sul server in cui inserire il file con il testo del codice. Per fare ciò, nella console (eseguibile direttamente sul sito tramite il pulsante “Apri console”), sono entrato

mkdir bot

bot: questo è diventato il nome della mia cartella. Successivamente ho installato npm e Node.js, che mi permetteranno poi di eseguire codice da file con risoluzione *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Ti consiglio vivamente di configurare una connessione al server tramite la tua console in questa fase. Qui istruzione Ciò ti consentirà di lavorare con il server direttamente tramite la console del tuo computer.

5. Come scrivere il codice per il tuo primo bot.

Ma ora per me è solo una scoperta. Qualsiasi programma è solo righe di testo. Si possono inserire ovunque, salvare con l'estensione desiderata e il gioco è fatto. Sei bello. ero solito Atom, ma in realtà puoi semplicemente scrivere su un blocco note standard. La cosa principale è salvare il file in un secondo momento con l'estensione desiderata. È come scrivere un testo in Word e salvarlo.

Ho creato un nuovo file, nel quale ho inserito il codice dell'esempio della pagina telegraf e l'ho salvato nel file index.js (in genere non è necessario nominare il file in questo modo, ma è consuetudine). Importante: invece di BOT_TOKEN, inserisci la tua chiave API dal secondo paragrafo.

const Telegraf = require('telegraf')

const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Welcome!'))
bot.help((ctx) => ctx.reply('Send me a sticker'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
bot.launch()

6. Come caricare il codice sul server tramite github

Ora dovevo caricare in qualche modo questo codice sul server ed eseguirlo. Questa è diventata una sfida per me. Di conseguenza, dopo molte traversie, ho capito che sarebbe stato più semplice creare un file su github che permettesse di aggiornare il codice utilizzando un comando nella console. Ho registrato un account su github e lo ha fatto nuovo progetto, dove ho caricato il file. Dopodiché, dovevo capire come impostare il caricamento dei file dal mio account (aperto!) al server nella cartella bot (se l'hai lasciata all'improvviso, scrivi semplicemente cd bot).

7. Come caricare file sul server tramite github parte 2

Avevo bisogno di installare un programma sul server che scaricasse file da Git. Ho installato git sul server digitando nella console

apt-get install git

Successivamente avevo bisogno di configurare il caricamento del file. Per fare ciò, ho digitato nella riga di comando

git clone git://github.com/b0tank/bot.git bot

Di conseguenza, tutto, dal progetto, è stato caricato sul server. L'errore in questa fase è stato che essenzialmente ho creato una seconda cartella all'interno della cartella del bot già esistente. L'indirizzo del file era simile a */bot/bot/index.js

Ho deciso di ignorare questo problema.

E per caricare la libreria telegraf, che richiediamo nella prima riga di codice, digita il comando nella console.

npm install telegraf

8. Come avviare un bot

Per fare ciò, mentre ti trovi nella cartella con il file (per spostarti da una cartella all'altra tramite la console, esegui il comando format cd bot Per assicurarti di essere dove devi essere, puoi inserire un comando che visualizzerà nella console tutti i file e le cartelle presenti ls -a

Per iniziare, sono entrato nella console

node index.js

Se non ci sono errori, va tutto bene, il bot funziona. Cercatelo su Telegram. Se c'è un errore, applica le tue conoscenze dal punto 1.

9. Come eseguire un bot in background

Ben presto ti renderai conto che il bot funziona solo quando tu stesso sei seduto alla console. Per risolvere questo problema ho utilizzato il comando

screen

Successivamente, verrà visualizzata una schermata con del testo. Ciò significa che va tutto bene. Sei su un server virtuale su un server cloud. Per capire meglio come funziona il tutto - ecco l'articolo. Basta andare nella tua cartella e inserire il comando per avviare il bot

node index.js

10. Come funziona il bot e come espandere le sue funzionalità

Cosa può fare il nostro bot di esempio? Lui può

bot.start((ctx) => ctx.reply('Welcome!'))

dire "Benvenuto!" al momento dell'avvio (prova a cambiare il testo)

bot.help((ctx) => ctx.reply('Send me a sticker'))

in risposta al comando standard /help, invia il messaggio “Inviami un adesivo”

bot.on('sticker', (ctx) => ctx.reply(''))

inviare l'approvazione in risposta a un adesivo

bot.hears('hi', (ctx) => ctx.reply('Hey there'))

rispondi "Ciao" se gli scrivono "ciao".
bot.launch()

Guida: come realizzare un semplice bot Telegram in JS per un principiante nella programmazione

Se guardi il codice su github, allora capirai subito che non mi sono allontanato molto da questa funzionalità. Ciò che viene utilizzato attivamente è la funzione ctx.replyWithPhoto Ti consente di inviare una foto o una gif specifica in risposta a un testo specifico.

Una parte significativa del codice è stata scritta da bambini di età compresa tra 11 e 13 anni, ai quali ho dato accesso al bot. Sono entrati nel loro caso utente. Penso che sia facile dire quale parte sia stata realizzata da loro.

Ad esempio, il messaggio “Jake” riceverà una GIF con un famoso personaggio del cartone animato Adventure Time.

Guida: come realizzare un semplice bot Telegram in JS per un principiante nella programmazione

Per sviluppare ulteriormente il bot, è necessario collegare una tastiera, vedere gli esempi, ad esempio, quindi

11. Come aggiornare il codice e riavviare il bot

Non dimenticare che devi aggiornare il codice non solo su github, ma anche sul server. È facile da fare: ferma il bot (premi ctrl+c),

- accedere alla console mentre ci si trova nella cartella di destinazione, git pull
- lanciamo nuovamente il bot con il comando node index.js

FINE

Molte delle cose descritte in questo file saranno estremamente ovvie per i programmatori avanzati. Tuttavia, quando io stesso ho provato a saltare oltre l'abisso nel mondo dei robot in un colpo solo, mi mancava davvero una guida del genere. Una guida che non tralascia cose ovvie e semplici per qualsiasi specialista IT.

In futuro, sto pianificando un post su come realizzare la tua prima applicazione su ReactNative nello stesso stile, iscriviti!

Fonte: habr.com

Aggiungi un commento