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 si fermava al programma di scuola su Pascal di 10 anni fa. Tuttavia, ho deciso di partecipare a un campo IT, dove sarebbe stato utile per i bambini realizzare un bot. Ho pensato che non potesse essere così difficile.

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

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

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

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

Dirò subito che questo articolo è per principianti — per capire semplicemente come fare cose elementari partendo da zero.

E inoltre — per programmatori avanzati — semplicemente per strappare loro un sorriso.

1. Come scrivere codice in JS?

Capivo che per iniziare dovevo almeno capire la sintassi del linguaggio. Ho scelto JavaScript, semplicemente perché il passo successivo per me era creare un'applicazione su ReactNative. Ho iniziato con del corso Codecademy e ne sono rimasto entusiasta. I primi 7 giorni sono gratuiti. Progetti reali. Lo consiglio. Ci ho messo circa 25 ore a completarlo. In realtà, non tutto ciò che ho imparato mi è stato utile. Questa è più o meno la struttura del corso e in dettaglio il primo blocco.

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

2. Come registrare un bot?

Inizialmente mi ha molto aiutato questo questo articolo dal blog di un certo Archakoff. Spiega le basi in modo chiaro. Ma la cosa principale che c'è — è una guida per la registrazione di un bot. Non potrei scriverla meglio, e poiché è la parte più facile, scriverò semplicemente il succo. Devi creare un bot e ottenere la sua API. Questo si fa attraverso un altro bot — @BotFather. Trovalo su Telegram, scrivigli, segui un percorso semplice e ricevi (salva!) la chiave API (è una serie 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 lunghe letture di articoli, ho capito che valeva la pena utilizzare una libreria (codice di terze parti in formato modulo), per non dover lottare con lo studio dell'API di Telegram e creare grandi pezzi di codice da zero. Ho trovato il framework telegraf, che doveva essere collegato in qualche modo a qualcosa tramite npm o yarn. Così pensavo allora a cosa consistesse il dispiegamento di un bot. Ridere qui. Non me ne offendo. Più di tutto, durante la successiva creazione del bot, mi hanno aiutato 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 alla riga di comando. La riga di comando è ovunque, ma per eseguirla è necessario installare NodePackageManager. 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à la console.

In poche parole, ho installato Linux tramite Crostini.

Tuttavia, durante il processo ho capito che per far funzionare il bot in modo permanente (e non solo quando ho acceso il computer) avevo bisogno di un server cloud. Ho scelto vscale.io Ho caricato 100 rubli, ho comprato il server Ubuntu più economico (vedi l'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 di che ho capito che dovevo creare una cartella sul server, in cui avrei messo il file con il codice. Per farlo, nella console (eseguita direttamente sul sito tramite il pulsante 'Apri console') ho scritto

mkdir bot

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

sudo apt update
sudo apt install nodejs
sudo apt install npm

Consiglio vivamente di configurare la connessione al server tramite la propria console in questo passaggio. Ecco istruzioni Questo permetterà di lavorare con il server direttamente attraverso la console del proprio computer.

5. Come scrivere il codice del primo bot.

Ora è una semplice apertura per me. Qualsiasi programma è semplicemente righe di testo. Possono essere inserite ovunque, salvate con l'estensione necessaria, e basta. Sei fantastico. Ho usato Atom, ma in realtà, si può semplicemente scrivere in un 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 nella pagina di telegraf e l'ho salvato nel file index.js (non è obbligatorio chiamare il file così, ma è consueto). È importante — sostituire BOT_TOKEN con la propria chiave API del secondo punto.

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 questo codice sul server e avviarlo. Per me è diventato una sfida. Alla fine, dopo molte peripezie, ho capito che era più semplice creare un file su github, che permette di aggiornare il codice tramite un comando in console. Ho registrato un account su github e ho fatto nuovo progetto, dove ho caricato il file. Dopo di che, dovevo capire come configurare il caricamento dei file dal mio account (pubblico!) sul server nella cartella bot (se per caso ne sei uscito — scrivi semplicemente cd bot).

7. Come caricare file sul server tramite github parte 2

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

apt-get install git

Dopo questo, 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.

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

npm install telegraf

8. Come avviare il bot

Per farlo, mentre ti trovi nella cartella con il file (per spostarti da una cartella all'altra tramite la console — esegui il comando nel formato cd bot Per assicurarti di essere nel posto giusto, puoi digitare un comando che mostri in console tutti i file e le cartelle presenti ls -a

Per avviare, ho digitato in console

node index.js

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

9. Come avviare il bot in modalità background

Capirai presto che il bot funziona solo quando sei tu stesso nella console. Per risolvere questo problema ho usato il comando

screen

Dopo di che apparirà uno schermo con qualche testo. Questo significa che va tutto bene. Sei su un server virtuale in un server 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 sa fare il nostro bot di esempio? Sa

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

dire «Benvenuto!» al momento dell'avvio (provate a cambiare il testo)

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

rispondere al comando standard /help inviando il messaggio «Inviami un adesivo»

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

rispondere all'adesivo inviando 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, allora capirete rapidamente che non mi sono allontanato molto da questa funzionalità. Ciò che viene utilizzato attivamente è la funzione ctx.replyWithPhoto Essa consente di inviare un'immagine o un gif specifico in risposta a un determinato testo.

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

Ad esempio, a un messaggio «jake» arriva un gif con un noto personaggio del cartone animato Adventure Time.

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

Per sviluppare ulteriormente il bot, per connettere la tastiera, bisogna vedere degli esempi, per esempio, da qui

11. Come aggiornare il codice e riavviare il bot

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

— inseriamo nella console, trovandoci nella cartella di destinazione, git pull
— riavviamo nuovamente il bot con il comando node index.js

END

Molti aspetti descritti in questo file saranno super evidenti per programmatori esperti. Tuttavia, quando ho cercato di saltare in un colpo solo nel mondo dei bot, mi è molto mancato un guido del genere. Un guido che non tralasci cose ovvie e semplici per qualsiasi specialista IT.

In futuro, ho in programma un post su come creare la propria prima applicazione in ReactNative nello stesso stile, iscrivetevi!

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