Οδηγός: πώς να φτιάξετε ένα απλό bot Telegram σε JS για αρχάριους στον προγραμματισμό

Άρχισα να βυθίζομαι στον κόσμο της πληροφορικής μόλις πριν από τρεις εβδομάδες. Σοβαρά, πριν από τρεις εβδομάδες δεν καταλάβαινα καν τη σύνταξη HTML και η εισαγωγή μου στις γλώσσες προγραμματισμού τελείωσε με ένα σχολικό πρόγραμμα για το Pascal πριν από 10 χρόνια. Ωστόσο, αποφάσισα να πάω σε μια κατασκήνωση πληροφορικής, όπου θα ήταν ωραίο να φτιάξουν τα παιδιά ένα bot. Αποφάσισα ότι δεν ήταν τόσο δύσκολο.

Αυτό ξεκίνησε ένα μακρύ ταξίδι στο οποίο:

  • ανέπτυξε έναν διακομιστή cloud με το Ubuntu,
  • εγγεγραμμένος στο GitHub,
  • έμαθε βασική σύνταξη JavaScript,
  • διαβάστε έναν τόνο άρθρων στα αγγλικά και τα ρωσικά,
  • τελικά έφτιαξε ένα bot,
  • Τελικά έγραψα αυτό το άρθρο.

Το τελικό αποτέλεσμα έμοιαζε κάπως έτσι:

Οδηγός: πώς να φτιάξετε ένα απλό bot Telegram σε JS για αρχάριους στον προγραμματισμό

Θα πω αμέσως ότι αυτό είναι ένα άρθρο για αρχάριους - απλώς για να καταλάβετε πώς να κάνετε βασικά πράγματα από την αρχή.

Και επίσης - για προχωρημένους προγραμματιστές - για να τους κάνω να γελάσουν λίγο.

1. Πώς να γράψετε κώδικα σε JS;

Κατάλαβα ότι άξιζε τουλάχιστον να καταλάβω πρώτα τη σύνταξη της γλώσσας. Η επιλογή έπεσε στην JavaScript, απλά επειδή το επόμενο βήμα για μένα ήταν να δημιουργήσω μια εφαρμογή στο ReactNative. ξεκίνησα με φυσικά στο Codecademy και χάρηκα πολύ. Οι πρώτες 7 ημέρες είναι δωρεάν. Πραγματικά έργα. Προτείνω. Η ολοκλήρωσή του χρειάστηκε περίπου 25 ώρες. Στην πραγματικότητα, δεν ήταν όλα χρήσιμα. Αυτή είναι η δομή του μαθήματος και το πρώτο μπλοκ αναλυτικά.

Οδηγός: πώς να φτιάξετε ένα απλό bot Telegram σε JS για αρχάριους στον προγραμματισμό

2. Πώς γίνεται η εγγραφή ενός bot;

Αυτό με βοήθησε πολύ στην αρχή αυτό το άρθρο από το blog κάποιου Archakov. Μασάει από την αρχή. Αλλά το κύριο πράγμα που υπάρχει είναι οδηγίες για την εγγραφή ενός bot. Δεν μπορώ να το γράψω καλύτερα, και επειδή αυτό είναι το πιο εύκολο κομμάτι, θα γράψω απλώς την ουσία. Πρέπει να δημιουργήσετε ένα bot και να αποκτήσετε το API του. Αυτό γίνεται μέσω ενός άλλου ρομπότ - @BotFather. Βρείτε τον στο τηλεγράφημα, γράψτε του, ακολουθήστε την απλή διαδρομή και αποκτήστε (αποθήκευση!) ένα κλειδί API (αυτό είναι ένα σύνολο αριθμών και γραμμάτων). Ήταν χρήσιμο αργότερα.

Οδηγός: πώς να φτιάξετε ένα απλό bot Telegram σε JS για αρχάριους στον προγραμματισμό

3. Πώς μοιάζει ο κώδικας bot;

Αφού μελέτησα τα άρθρα για μεγάλο χρονικό διάστημα, συνειδητοποίησα ότι άξιζε να χρησιμοποιήσω κάποιο είδος βιβλιοθήκης (κώδικας τρίτου μέρους σε μορφή ενότητας) ώστε να μην ανησυχώ για τη μελέτη του API του Telegram και τη δημιουργία μεγάλων κομματιών κώδικα από την αρχή. Βρήκα το πλαίσιο τηλεγράφημα, το οποίο έπρεπε να συνδεθεί με κάποιο τρόπο με κάτι χρησιμοποιώντας npm ή νήμα. Έτσι κατάλαβα περίπου σε τι συνίστατο η ανάπτυξη ενός bot. Γελάστε εδώ. Δεν θα προσβληθώ. Τα παραδείγματα στο κάτω μέρος της σελίδας με βοήθησαν περισσότερο κατά την επακόλουθη δημιουργία του bot:

Οδηγός: πώς να φτιάξετε ένα απλό bot Telegram σε JS για αρχάριους στον προγραμματισμό

3. Πώς να δημιουργήσετε τον δικό σας διακομιστή cloud για 100 ρούβλια

Μετά από πολύ ψάξιμο, συνειδητοποίησα ότι η εντολή 'npm' στην παραπάνω εικόνα αναφέρεται στη γραμμή εντολών. Η γραμμή εντολών είναι παντού, αλλά για να μπορέσετε να την εκτελέσετε, πρέπει να εγκαταστήσετε το NodePackageManager. Το πρόβλημα ήταν ότι προγραμματιζόμουν σε ένα PixelBook με ChromeOS. Θα παραλείψω εδώ ένα μεγάλο μπλοκ σχετικά με το πώς έμαθα το Linux - για τους περισσότερους είναι άδειο και περιττό. Εάν έχετε Windows ή MacBook, έχετε ήδη μια κονσόλα.

Με λίγα λόγια, εγκατέστησα το Linux μέσω του Crostini.

Ωστόσο, στην πορεία, συνειδητοποίησα ότι για να λειτουργεί συνεχώς το bot (και όχι μόνο όταν ο υπολογιστής μου είναι ανοιχτός), χρειάζομαι έναν διακομιστή cloud. διάλεξα vscale.io Ξόδεψα 100 ρούβλια και αγόρασα τον φθηνότερο διακομιστή Ubuntu (βλ. εικόνα).

Οδηγός: πώς να φτιάξετε ένα απλό bot Telegram σε JS για αρχάριους στον προγραμματισμό

4. Πώς να προετοιμάσετε έναν διακομιστή για την εκτέλεση ενός bot

Μετά από αυτό, συνειδητοποίησα ότι έπρεπε να φτιάξω κάποιο είδος φακέλου στον διακομιστή στον οποίο θα έβαζα το αρχείο με το κείμενο του κώδικα. Για να γίνει αυτό, στην κονσόλα (εκτελείται απευθείας στον ιστότοπο μέσω του κουμπιού "Άνοιγμα κονσόλας"), εισήγαγα

mkdir bot

bot - αυτό έγινε το όνομα του φακέλου μου. Μετά από αυτό, εγκατέστησα τα npm και Node.js, τα οποία θα μου επιτρέψουν να εκτελώ κώδικα από αρχεία με ανάλυση *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Συνιστώ ανεπιφύλακτα να δημιουργήσετε μια σύνδεση με τον διακομιστή μέσω της κονσόλας σας σε αυτό το στάδιο. Εδώ εντολή Αυτό θα σας επιτρέψει να εργαστείτε με τον διακομιστή απευθείας μέσω της κονσόλας του υπολογιστή σας.

5. Πώς να γράψετε τον κώδικα για το πρώτο σας bot.

Αλλά τώρα είναι απλώς μια ανακάλυψη για μένα. Οποιοδήποτε πρόγραμμα είναι απλώς γραμμές κειμένου. Μπορούν να εισαχθούν οπουδήποτε, να αποθηκευτούν με την επιθυμητή επέκταση, και αυτό είναι. Είσαι όμορφη. χρησιμοποίησα άτομο, αλλά στην πραγματικότητα, μπορείτε απλώς να γράψετε σε ένα τυπικό σημειωματάριο. Το κύριο πράγμα είναι να αποθηκεύσετε το αρχείο αργότερα στην επιθυμητή επέκταση. Είναι σαν να γράφετε κείμενο στο Word και να το αποθηκεύετε.

Έφτιαξα ένα νέο αρχείο, στο οποίο έβαλα τον κώδικα από το παράδειγμα στη σελίδα του telegraf και τον αποθήκευσα στο αρχείο index.js (γενικά δεν είναι απαραίτητο να ονομάσουμε έτσι το αρχείο, αλλά αυτό συνηθίζεται). Σημαντικό - αντί για BOT_TOKEN, εισαγάγετε το κλειδί API από τη δεύτερη παράγραφο.

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. Πώς να ανεβάσετε κώδικα στον διακομιστή μέσω του github

Τώρα έπρεπε με κάποιο τρόπο να ανεβάσω αυτόν τον κώδικα στον διακομιστή και να τον εκτελέσω. Αυτό έγινε πρόκληση για μένα. Ως αποτέλεσμα, μετά από πολλή δοκιμασία, συνειδητοποίησα ότι θα ήταν ευκολότερο να δημιουργήσετε ένα αρχείο στο github που σας επιτρέπει να ενημερώσετε τον κώδικα χρησιμοποιώντας μια εντολή στην κονσόλα. Έκανα εγγραφή λογαριασμού στο GitHub και έκανε νέο έργο, όπου ανέβασα το αρχείο. Μετά από αυτό, έπρεπε να καταλάβω πώς να ρυθμίσω τη μεταφόρτωση αρχείων από τον λογαριασμό μου (ανοιχτό!) στον διακομιστή στο φάκελο bot (αν τον άφησες ξαφνικά, απλώς γράψε cd bot).

7. Πώς να ανεβάσετε αρχεία στον διακομιστή μέσω του github part 2

Χρειάστηκε να εγκαταστήσω ένα πρόγραμμα στον διακομιστή που θα κατέβαζε αρχεία από το git. Εγκατέστησα το git στον διακομιστή πληκτρολογώντας στην κονσόλα

apt-get install git

Μετά από αυτό χρειάστηκε να διαμορφώσω τη μεταφόρτωση του αρχείου. Για να το κάνω αυτό, πληκτρολόγησα στη γραμμή εντολών

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

Ως αποτέλεσμα, τα πάντα από το έργο μεταφορτώθηκαν στον διακομιστή. Το λάθος σε αυτό το στάδιο ήταν ότι ουσιαστικά έκανα έναν δεύτερο φάκελο μέσα στον ήδη υπάρχοντα φάκελο bot. Η διεύθυνση στο αρχείο έμοιαζε με */bot/bot/index.js

Αποφάσισα να αγνοήσω αυτό το πρόβλημα.

Και για να φορτώσετε τη βιβλιοθήκη telegraf, την οποία ζητάμε στην πρώτη γραμμή κώδικα, πληκτρολογήστε την εντολή στην κονσόλα.

npm install telegraf

8. Πώς να εκκινήσετε ένα bot

Για να το κάνετε αυτό, ενώ βρίσκεστε στο φάκελο με το αρχείο (για να μετακινηθείτε από φάκελο σε φάκελο μέσω της κονσόλας, εκτελέστε την εντολή format cd bot Για να βεβαιωθείτε ότι βρίσκεστε εκεί που πρέπει να βρίσκεστε, μπορείτε να εισάγετε μια εντολή που θα εμφανίζει στην κονσόλα όλα τα αρχεία και τους φακέλους που υπάρχουν ls -a

Για να ξεκινήσω, μπήκα στην κονσόλα

node index.js

Εάν δεν υπάρχει σφάλμα, όλα είναι καλά, το bot λειτουργεί. Αναζητήστε τον στο τηλεγράφημα. Εάν υπάρχει σφάλμα, εφαρμόστε τις γνώσεις σας από το σημείο 1.

9. Πώς να εκτελέσετε ένα bot στο παρασκήνιο

Πολύ γρήγορα θα συνειδητοποιήσετε ότι το bot λειτουργεί μόνο όταν κάθεστε εσείς στην κονσόλα. Για να λύσω αυτό το πρόβλημα χρησιμοποίησα την εντολή

screen

Μετά από αυτό, θα εμφανιστεί μια οθόνη με κάποιο κείμενο. Αυτό σημαίνει ότι όλα είναι καλά. Βρίσκεστε σε έναν εικονικό διακομιστή σε έναν διακομιστή cloud. Για να καταλάβετε καλύτερα πώς λειτουργούν όλα - εδώ είναι το άρθρο. Απλώς μεταβείτε στον φάκελό σας και πληκτρολογήστε την εντολή εκκίνησης του bot

node index.js

10. Πώς λειτουργεί το bot και πώς να επεκτείνετε τη λειτουργικότητά του

Τι μπορεί να κάνει το παράδειγμα του bot μας; Αυτός μπορεί

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

πες "Καλώς ήρθες!" τη στιγμή της έναρξης (δοκιμάστε να αλλάξετε το κείμενο)

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

σε απάντηση στην τυπική εντολή /help, στείλτε το μήνυμα "Στείλτε μου ένα αυτοκόλλητο"

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

στείλτε έγκριση ως απάντηση σε ένα αυτοκόλλητο

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

απαντήστε «Γεια σου» αν του γράψουν «γεια».
bot.launch()

Οδηγός: πώς να φτιάξετε ένα απλό bot Telegram σε JS για αρχάριους στον προγραμματισμό

Αν κοιτάξετε τον κωδικό στο GitHub, τότε θα καταλάβετε γρήγορα ότι δεν έχω πάει πολύ μακριά από αυτήν τη λειτουργία. Αυτό που χρησιμοποιείται ενεργά είναι η λειτουργία ctx.replyWithPhoto Σας επιτρέπει να στείλετε μια καθορισμένη φωτογραφία ή gif ως απάντηση σε ένα συγκεκριμένο κείμενο.

Ένα σημαντικό μέρος του κώδικα γράφτηκε από παιδιά 11-13 ετών, στα οποία έδωσα πρόσβαση στο bot. Μπήκαν στο user-case τους. Νομίζω ότι είναι εύκολο να ξεχωρίσουμε ποιο μέρος φτιάχτηκε από αυτούς.

Για παράδειγμα, το μήνυμα "Jake" θα λάβει ένα GIF με έναν διάσημο χαρακτήρα από το cartoon Adventure Time.

Οδηγός: πώς να φτιάξετε ένα απλό bot Telegram σε JS για αρχάριους στον προγραμματισμό

Για να αναπτύξετε περαιτέρω το bot, πρέπει να συνδέσετε ένα πληκτρολόγιο, δείτε παραδείγματα, για παράδειγμα, ως εκ τούτου,

11. Πώς να ενημερώσετε τον κώδικα και να επανεκκινήσετε το bot

Μην ξεχνάτε ότι πρέπει να ενημερώσετε τον κώδικα όχι μόνο στο github, αλλά και στον διακομιστή. Αυτό είναι εύκολο να το κάνετε - σταματήστε το bot (πατήστε ctrl+c),

- μπείτε στην κονσόλα ενώ βρίσκεστε στον φάκελο προορισμού, git pull
— εκκινούμε ξανά το bot με την εντολή node index.js

ΤΕΛΟΣ

Πολλά από τα πράγματα που περιγράφονται σε αυτό το αρχείο θα είναι εξαιρετικά προφανή στους προχωρημένους προγραμματιστές. Ωστόσο, όταν ο ίδιος προσπάθησα να πηδήξω πάνω από το χάσμα στον κόσμο των bots με μια πτώση, έχασα πραγματικά έναν τέτοιο οδηγό. Ένας οδηγός που δεν χάνει πράγματα προφανή και απλά για κάθε ειδικό της πληροφορικής.

Στο μέλλον, σχεδιάζω μια ανάρτηση για το πώς να κάνετε την πρώτη σας εφαρμογή στο ReactNative με το ίδιο στυλ, εγγραφείτε!

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο