Άρχισα να βυθίζομαι στον κόσμο της πληροφορικής μόλις πριν από τρεις εβδομάδες. Σοβαρά, πριν από τρεις εβδομάδες δεν καταλάβαινα καν τη σύνταξη HTML και η εισαγωγή μου στις γλώσσες προγραμματισμού τελείωσε με ένα σχολικό πρόγραμμα για το Pascal πριν από 10 χρόνια. Ωστόσο, αποφάσισα να πάω σε μια κατασκήνωση πληροφορικής, όπου θα ήταν ωραίο να φτιάξουν τα παιδιά ένα bot. Αποφάσισα ότι δεν ήταν τόσο δύσκολο.
Αυτό ξεκίνησε ένα μακρύ ταξίδι στο οποίο:
- ανέπτυξε έναν διακομιστή cloud με το Ubuntu,
- εγγεγραμμένος στο GitHub,
- έμαθε βασική σύνταξη JavaScript,
- διαβάστε έναν τόνο άρθρων στα αγγλικά και τα ρωσικά,
- τελικά έφτιαξε ένα bot,
- Τελικά έγραψα αυτό το άρθρο.
Το τελικό αποτέλεσμα έμοιαζε κάπως έτσι:
Θα πω αμέσως ότι αυτό είναι ένα άρθρο για αρχάριους - απλώς για να καταλάβετε πώς να κάνετε βασικά πράγματα από την αρχή.
Και επίσης - για προχωρημένους προγραμματιστές - για να τους κάνω να γελάσουν λίγο.
1. Πώς να γράψετε κώδικα σε JS;
Κατάλαβα ότι άξιζε τουλάχιστον να καταλάβω πρώτα τη σύνταξη της γλώσσας. Η επιλογή έπεσε στην JavaScript, απλά επειδή το επόμενο βήμα για μένα ήταν να δημιουργήσω μια εφαρμογή στο ReactNative. ξεκίνησα με
2. Πώς γίνεται η εγγραφή ενός bot;
Αυτό με βοήθησε πολύ στην αρχή
3. Πώς μοιάζει ο κώδικας bot;
Αφού μελέτησα τα άρθρα για μεγάλο χρονικό διάστημα, συνειδητοποίησα ότι άξιζε να χρησιμοποιήσω κάποιο είδος βιβλιοθήκης (κώδικας τρίτου μέρους σε μορφή ενότητας) ώστε να μην ανησυχώ για τη μελέτη του API του Telegram και τη δημιουργία μεγάλων κομματιών κώδικα από την αρχή. Βρήκα το πλαίσιο
3. Πώς να δημιουργήσετε τον δικό σας διακομιστή cloud για 100 ρούβλια
Μετά από πολύ ψάξιμο, συνειδητοποίησα ότι η εντολή 'npm' στην παραπάνω εικόνα αναφέρεται στη γραμμή εντολών. Η γραμμή εντολών είναι παντού, αλλά για να μπορέσετε να την εκτελέσετε, πρέπει να εγκαταστήσετε το NodePackageManager. Το πρόβλημα ήταν ότι προγραμματιζόμουν σε ένα PixelBook με ChromeOS. Θα παραλείψω εδώ ένα μεγάλο μπλοκ σχετικά με το πώς έμαθα το Linux - για τους περισσότερους είναι άδειο και περιττό. Εάν έχετε Windows ή MacBook, έχετε ήδη μια κονσόλα.
Με λίγα λόγια, εγκατέστησα το Linux μέσω του Crostini.
Ωστόσο, στην πορεία, συνειδητοποίησα ότι για να λειτουργεί συνεχώς το bot (και όχι μόνο όταν ο υπολογιστής μου είναι ανοιχτός), χρειάζομαι έναν διακομιστή cloud. διάλεξα
4. Πώς να προετοιμάσετε έναν διακομιστή για την εκτέλεση ενός bot
Μετά από αυτό, συνειδητοποίησα ότι έπρεπε να φτιάξω κάποιο είδος φακέλου στον διακομιστή στον οποίο θα έβαζα το αρχείο με το κείμενο του κώδικα. Για να γίνει αυτό, στην κονσόλα (εκτελείται απευθείας στον ιστότοπο μέσω του κουμπιού "Άνοιγμα κονσόλας"), εισήγαγα
mkdir bot
bot - αυτό έγινε το όνομα του φακέλου μου. Μετά από αυτό, εγκατέστησα τα npm και Node.js, τα οποία θα μου επιτρέψουν να εκτελώ κώδικα από αρχεία με ανάλυση *.js
sudo apt update
sudo apt install nodejs
sudo apt install npm
Συνιστώ ανεπιφύλακτα να δημιουργήσετε μια σύνδεση με τον διακομιστή μέσω της κονσόλας σας σε αυτό το στάδιο. Εδώ
5. Πώς να γράψετε τον κώδικα για το πρώτο σας bot.
Αλλά τώρα είναι απλώς μια ανακάλυψη για μένα. Οποιοδήποτε πρόγραμμα είναι απλώς γραμμές κειμένου. Μπορούν να εισαχθούν οπουδήποτε, να αποθηκευτούν με την επιθυμητή επέκταση, και αυτό είναι. Είσαι όμορφη. χρησιμοποίησα
Έφτιαξα ένα νέο αρχείο, στο οποίο έβαλα τον κώδικα από το παράδειγμα στη σελίδα του 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 που σας επιτρέπει να ενημερώσετε τον κώδικα χρησιμοποιώντας μια εντολή στην κονσόλα. Έκανα εγγραφή λογαριασμού στο
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. Για να καταλάβετε καλύτερα πώς λειτουργούν όλα -
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()
Αν κοιτάξετε τον κωδικό στο ctx.replyWithPhoto
Σας επιτρέπει να στείλετε μια καθορισμένη φωτογραφία ή gif ως απάντηση σε ένα συγκεκριμένο κείμενο.
Ένα σημαντικό μέρος του κώδικα γράφτηκε από παιδιά 11-13 ετών, στα οποία έδωσα πρόσβαση στο bot. Μπήκαν στο user-case τους. Νομίζω ότι είναι εύκολο να ξεχωρίσουμε ποιο μέρος φτιάχτηκε από αυτούς.
Για παράδειγμα, το μήνυμα "Jake" θα λάβει ένα GIF με έναν διάσημο χαρακτήρα από το cartoon Adventure Time.
Για να αναπτύξετε περαιτέρω το bot, πρέπει να συνδέσετε ένα πληκτρολόγιο, δείτε παραδείγματα, για παράδειγμα,
11. Πώς να ενημερώσετε τον κώδικα και να επανεκκινήσετε το bot
Μην ξεχνάτε ότι πρέπει να ενημερώσετε τον κώδικα όχι μόνο στο github, αλλά και στον διακομιστή. Αυτό είναι εύκολο να το κάνετε - σταματήστε το bot (πατήστε ctrl+c),
- μπείτε στην κονσόλα ενώ βρίσκεστε στον φάκελο προορισμού, git pull
— εκκινούμε ξανά το bot με την εντολή node index.js
ΤΕΛΟΣ
Πολλά από τα πράγματα που περιγράφονται σε αυτό το αρχείο θα είναι εξαιρετικά προφανή στους προχωρημένους προγραμματιστές. Ωστόσο, όταν ο ίδιος προσπάθησα να πηδήξω πάνω από το χάσμα στον κόσμο των bots με μια πτώση, έχασα πραγματικά έναν τέτοιο οδηγό. Ένας οδηγός που δεν χάνει πράγματα προφανή και απλά για κάθε ειδικό της πληροφορικής.
Στο μέλλον, σχεδιάζω μια ανάρτηση για το πώς να κάνετε την πρώτη σας εφαρμογή στο ReactNative με το ίδιο στυλ, εγγραφείτε!
Πηγή: www.habr.com