Guida: come creare un semplice bot per Telegram in JS per principianti nella programmazione

Ho iniziato a immergermi nel mondo IT solo tre settimane fa. Seriamente, tre settimane fa non capivo nemmeno la sintassi HTML, e la mia conoscenza dei linguaggi di programmazione finiva con il programma scolastico di Pascal di dieci anni fa. Tuttavia, ho deciso di partecipare a un campo estivo IT, dove i ragazzi avrebbero potuto essere aiutati a creare un bot. Ho pensato che non fosse così difficile.

Da qui è iniziato un lungo percorso, durante il quale ho:

  • creato un server cloud con Ubuntu,
  • mi sono registrato su GitHub,
  • imparato la sintassi di base di JavaScript,
  • letto un sacco di articoli in inglese e russo,
  • finalmente creato un bot,
  • e infine scritto questo articolo.

Il risultato finale è apparso più o meno così:

Guida: come creare un semplice bot per Telegram in JS per principianti nella programmazione

Vi dirò subito che questo articolo è per principianti — per comprendere semplicemente come fare cose elementari partendo da zero.

E per i programmatori avanzati — semplicemente per farli sorridere un po'.

1. Come scrivere codice in JS?

Capivo che era importante innanzitutto districarsi nella sintassi del linguaggio. Ho scelto JavaScript, semplicemente perché il mio passo successivo era creare un'applicazione su ReactNative. Ho iniziato con un corso su Codecademy e sono rimasto molto impressionato. I primi 7 giorni sono gratuiti. Progetti reali. Lo raccomando. Il suo completamento ha richiesto circa 25 ore. In realtà, non tutto è stato utile. Questa è una panoramica della struttura del corso e in dettaglio il primo modulo.

Guida: come creare un semplice bot per Telegram in JS per principianti nella programmazione

2. Come registrare un bot?

All'inizio mi ha molto aiutato questo questo articolo dal blog di un certo Archakov. Spiega molto bene le basi. Ma la cosa principale è che c'è un'istruzione su come registrare un bot. Non potrei scriverlo meglio e, poiché questa è la parte più semplice, scriverò solo il succo. È necessario creare un bot e ottenere la sua API. Questo si fa tramite un altro bot — @BotFather. Trovalo su telegram, scrivigli, segui il percorso semplice e ottieni (salva!) la chiave API (questo è un insieme di numeri e lettere). Mi è servita in seguito.

Guida: come creare un semplice bot per Telegram in JS per principianti nella programmazione

3. Come appare il codice del bot?

Dopo aver studiato a lungo articoli, ho capito che valeva la pena utilizzare qualche libreria (codice di terze parti in formato modulo), così da non dover studiare l'API di Telegram e scrivere grandi pezzi di codice da zero. Ho trovato il framework telegraf, che doveva essere collegato a qualcosa tramite npm o yarn. Così capivo allora come si componeva la distribuzione del bot. Ridete pure, non mi offendo. Più di tutto, durante la creazione successiva del bot, mi sono stati utili gli esempi indicati in fondo alla pagina:

Guida: come creare un semplice bot per Telegram in JS per principianti nella programmazione

3. Come creare il proprio server cloud per 100 rubli

Dopo lunghe ricerche ho capito che il comando 'npm' dell'immagine sopra si riferisce al terminale. Il terminale è ovunque, ma per eseguirlo bisogna installare Node Package Manager. Il problema era che programmavo su un PixelBook con ChromeOS. Salterò qui un lungo blocco su come ho imparato Linux — per la maggior parte è superfluo e non necessario. Se hai Windows o MacBook, hai già una console.

In poche parole, ho installato Linux tramite Crostini.

Tuttavia, durante il processo ho capito che per il funzionamento continuo del bot (e non solo quando il mio computer è acceso) avevo bisogno di un server cloud. Ho scelto vscale.io Ho caricato 100 rubli, comprato il server Ubuntu più economico (vedi immagine).

Guida: come creare un semplice bot per Telegram in JS per principianti nella programmazione

4. Come preparare il server per avviare il bot

Dopo averlo fatto, ho capito che dovevo creare una cartella sul server dove avrei messo il file con il codice. Per farlo, nella console (da lanciare direttamente sul sito cliccando sul pulsante «Apri console») ho digitato

mkdir bot

bot — это стало название моей папки. После этого я установил npm и Node.js, что позволит запускать мне потом код из файликов с разрешением *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Ti consiglio vivamente di configurare la connessione al server attraverso la tua console in questo momento. Ecco una guida Questo ti permetterà di lavorare con il server direttamente dalla console del tuo computer.

5. Come scrivere il codice per il primo bot.

E ora è una semplice rivelazione per me. Qualsiasi programma è semplicemente un insieme di righe di testo. Possono essere inserite ovunque, salvate con l'estensione desiderata, e voilà. Sei fantastico. Ho usato Atom, ma in realtà, puoi semplicemente scrivere nel normale Blocco note. L'importante è poi salvare il file con l'estensione corretta. È come scrivere un testo in Word e salvarlo.

Ho creato un nuovo file, in cui ho incollato il codice dall'esempio sulla pagina di telegraf e l'ho salvato come index.js (non è obbligatorio chiamare il file in questo modo, ma è consuetudine). Importante: invece di BOT_TOKEN, inserisci la tua chiave API dal secondo punto.

const Telegraf = require('telegraf')

const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Benvenuto!'))
bot.help((ctx) => ctx.reply('Inviami un adesivo'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Ciao!'))
bot.launch()

6. Come caricare il codice sul server tramite github

Ora dovevo caricare in qualche modo questo codice sul server e avviarlo. È diventato una sfida per me. Alla fine, dopo lunghe tribolazioni, ho capito che sarebbe stato più semplice creare un file su github che permettesse di aggiornare il codice usando un comando nella console. Ho registrato un account su github e ho creato nuovo progetto, dove ho caricato il file. Dopo di che dovevo capire come impostare il caricamento dei file dal mio account (aperto!) sul server nella cartella bot (se per caso ti sei disconnesso, basta scrivere cd bot).

7. Come caricare i file sul server tramite github parte 2

Dovevo installare sul server un programma che caricasse file da git. Ho installato git sul server, digitando nella console

apt-get install git

Dopo di che dovevo configurare il caricamento dei file. Per fare ciò, ho digitato nel terminale

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

В итоге все из проекта загрузилось на сервер. Ошибкой на данном этапе было, что я, по сути, сделал вторую папку внутри уже существующей папки bot. Адрес до файла выглядел как */bot/bot/index.js

Ho deciso di ignorare questo problema.

Per caricare la libreria telegraf, che richiediamo nella prima riga di codice, digita nel terminale il comando.

npm install telegraf

8. Come avviare il bot

Per fare ciò, assicurati di trovarti nella cartella con il file (per passare da una cartella all'altra nel terminale, esegui il comando nel formato cd bot Per assicurarti di essere nella giusta posizione, puoi inserire il comando che mostrerà nel terminale tutti i file e le cartelle presenti lì. ls -a

Per avviare, ho inserito nel terminale

node index.js

Se non ci sono errori — tutto funziona bene, il bot è attivo. Cercalo in Telegram. Se ci sono errori — applica le tue conoscenze dal punto 1.

9. Come avviare il bot in background

Capirai abbastanza rapidamente che il bot funziona solo quando sei nel terminale. Per risolvere questo problema, ho usato il comando

schermo

Dopo di ciò, apparirà uno schermo con del testo. Questo significa che tutto va bene. Sei su un server virtuale nel cloud. Per capire meglio come funziona tutto questo — ecco un articolo. Basta entrare nella tua cartella e digitare 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 dell'esempio? Può

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

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

bot.help((ctx) => ctx.reply('Mandami un adesivo'))

in risposta al comando standard /help invia il messaggio 'Mandami un adesivo'

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

in risposta a un adesivo invia un'approvazione

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

rispondere 'Ciao', se gli scrivono 'hi'
bot.launch()

Guida: come creare un semplice bot per Telegram in JS per principianti nella programmazione

Se guardi il codice su github, capirai velocemente che non mi sono allontanato molto da questa funzionalità. Quello che è utilizzato attivamente è la funzione ctx.replyWithPhoto Consente di inviare una foto o un gif specifico in risposta a un testo determinato.

Una parte significativa del codice è stata scritta da bambini di 11-13 anni, ai quali ho dato accesso al bot. Hanno introdotto i loro casi d'uso. Penso sia facile capire quale parte sia stata fatta da loro.

Ad esempio, al messaggio 'jake' arriva un gif di un personaggio noto del cartone animato Adventure Time.

Guida: come creare un semplice bot per Telegram in JS per principianti nella programmazione

Per sviluppare ulteriormente il bot, è necessario connettere una tastiera e guardare esempi, per esempio, da qui

11. Come aggiornare il codice e riavviare il bot

Non dimenticate che è necessario aggiornare il codice non solo su GitHub, ma anche sul server. È semplice: fermiamo il bot (premendo ctrl+c),

— inseriamo nella console, mentre ci troviamo nella cartella di destinazione, git pull
— riavviamo di nuovo il bot con il comando node index.js

FINE

Molte delle cose descritte in questo file saranno super evidenti per programmatori esperti. Tuttavia, quando ho cercato di saltare direttamente nel mondo dei bot, mi è mancata molto una guida come questa. Una guida che non tralascia dettagli ovvi e semplici per chiunque abbia esperienza nel settore IT.

In futuro, ho in programma un post su come creare la mia prima applicazione su ReactNative con lo stesso stile, seguitemi!

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster