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:
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
2. Come registrare un bot?
Questo mi ha aiutato molto all'inizio
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
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
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
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
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
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 -
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()
Se guardi il codice su 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.
Per sviluppare ulteriormente il bot, è necessario collegare una tastiera, vedere gli esempi, ad esempio,
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