Σήμερα, από αυτοσχέδια υλικά, θα συλλέξουμε μέσα https://api.telegram.org/
. Λοιπόν, δεν θα το κάνουμε - όχι, όχι. Πράγματι, στην τσάντα μας υπάρχουν τα λεγόμενα. webhooks - με τη βοήθειά τους, δεν κάνουμε αιτήματα σε συγκεκριμένη διεύθυνση, αλλά αποστέλλουμε μόνο το αίτημά μας ως απάντηση σε οποιοδήποτε αίτημα προς εμάς. Δηλαδή, όπως στην Οδησσό - απαντάμε σε μια ερώτηση με μια ερώτηση. Να γιατί Telegram API δεν θα εμφανιστεί στον κώδικά μας.
Αποποίηση ευθυνώνΤα ονόματα οποιωνδήποτε κρατικών οργανισμών που αναφέρονται σε αυτό το άρθρο είναι εικονικά και πιθανές συμπτώσεις με ονόματα οργανισμών της πραγματικής ζωής είναι τυχαίες.
Έτσι, θα φτιάξουμε ένα bot που θα μας εφοδιάζει με έξυπνες σκέψεις. Ακριβώς όπως στην εικόνα:
Μπορείτε να το δοκιμάσετε στην πράξη - εδώ είναι το όνομα: @SmartThoughtsBot. Παρατηρήστε το κουμπί "Η ικανότητα της Αλίκης"? Κι αυτό γιατί το bot είναι ένα είδος «συντρόφου» για τους επώνυμους Η ικανότητα της Αλίκης, δηλ. εκτελεί τις ίδιες λειτουργίες όπως Η ικανότητα της Αλίκης και, ίσως, ότι μπορούν να συνυπάρχουν ειρηνικά διαφημίζοντας ο ένας τον άλλον. Σχετικά με τον τρόπο δημιουργίας Ικανότητα Έξυπνης Σκέψης που περιγράφεται στο άρθρο
Δημιουργία bot
Θα ήθελα αυτό το σεμινάριο να είναι χρήσιμο σε όλους, συμπεριλαμβανομένου. και αρχάριοι "bot builders". Ως εκ τούτου, σε αυτήν την ενότητα θα περιγράψω λεπτομερώς πώς να δημιουργήσετε γενικά Telegramείναι bots. Για όσους δεν χρειάζονται αυτές τις πληροφορίες, προχωρήστε στις επόμενες ενότητες.
Ανοίξτε την εφαρμογή Telegaram, λέμε τον πατέρα όλων των ρομπότ (τα έχουν όλα σαν άνθρωποι) - @BotFather - και για αρχή, θα του δώσουμε την εντολή / help για να ανανεώσει τη μνήμη μας για το τι μπορούμε να κάνουμε. Τώρα μας ενδιαφέρει η ομάδα / newbot.
Επειδή το bot που περιγράφεται εδώ έχει ήδη δημιουργηθεί, για λόγους επίδειξης θα δημιουργήσω ένα άλλο bot για σύντομο χρονικό διάστημα (μετά θα το διαγράψω). Θα του τηλεφωνήσω DemoHabrBot. Ονόματα (όνομα χρήστη) όλα τα ρομπότ τηλεγραφήματος πρέπει να τελειώνουν με μια λέξη του bot, για παράδειγμα: MyCoolBot ή my_cool_bot Αυτό είναι για bots. Αλλά πρώτα, δώστε στο bot ένα όνομα (όνομα) είναι για ανθρώπους. Το όνομα μπορεί να είναι σε οποιαδήποτε γλώσσα, να περιέχει κενά, δεν χρειάζεται να τελειώνει με μια λέξη του bot, και δεν χρειάζεται καν να είναι μοναδικό. Σε αυτό το παράδειγμα, κάλεσα αυτό το bot Demo Habr.
Τώρα επιλέξτε ένα όνομα για το ρομπότ (όνομα χρήστη, αυτό για bots). Ας το ονομάσουμε DemoHabrBot. Όλα όσα σχετίζονται με το όνομα του bot (όνομα) δεν σχετίζεται καθόλου με το όνομά του - όνομα χρήστη (ή ισχύει, αλλά ακριβώς το αντίθετο). Αφού δημιουργήσουμε με επιτυχία ένα μοναδικό όνομα bot, πρέπει να αντιγράψουμε και να αποθηκεύσουμε (με απόλυτη εχεμύθεια!) το διακριτικό που εμφανίζεται στο στιγμιότυπο οθόνης με ένα κόκκινο βέλος. Με τη βοήθειά του, θα εγκαταστήσουμε αργότερα την εξερχόμενη TelegramΈνα webhook για μας Λειτουργία Yandex.
Και τώρα θα δώσουμε την εντολή στον πατέρα όλων των bot: /mybotsκαι θα μας δείξει μια λίστα με όλα τα bots που έχουμε δημιουργήσει. Ας αφήσουμε το φρεσκοψημένο μποτ ήσυχο προς το παρόν Demo Habr (δημιουργήθηκε για να δείξει πώς να δημιουργήσετε bots, αλλά θα το χρησιμοποιήσουμε σήμερα για άλλους σκοπούς επίδειξης) και σκεφτείτε το ρομπότ Έξυπνες Σκέψεις (@SmartThoughtsBot). Κάντε κλικ στο κουμπί με το όνομά του στη λίστα των bots.
Εδώ μπορούμε να ρυθμίσουμε το bot μας. Πατώντας ένα κουμπί Επεξεργασία… θα προχωρήσουμε στην επεξεργασία μιας ή άλλης επιλογής. Για παράδειγμα, κάνοντας κλικ στο κουμπί Επεξεργασία ονόματος μπορούμε να αλλάξουμε το όνομα του bot, ας πούμε αντί για Έξυπνες Σκέψεις, γράψε τρελές ιδέες. Botpic - αυτό είναι το avatar του bot, πρέπει να είναι τουλάχιστον 150 x 150 px. Περιγραφή είναι μια σύντομη περιγραφή που βλέπει ο χρήστης όταν το bot εκκινείται για πρώτη φορά, ως απάντηση στην ερώτηση: Τι μπορεί να κάνει αυτό το bot; Σχετικά - μια ακόμη πιο σύντομη περιγραφή, η οποία μεταδίδεται με έναν σύνδεσμο στο bot (https://t.me/SmartThoughtsBot
) ή κατά την προβολή πληροφοριών σχετικά με αυτό.
Απλά πρέπει να ρυθμίσουμε τις εντολές. Για να το κάνετε αυτό, πατήστε το κουμπί Επεξεργασία εντολών. Για την τυποποίηση των πρακτικών των χρηστών Telegram συνιστά να χρησιμοποιείτε πάντα δύο εντολές: /αρχή и /βοήθεια, και εάν το bot χρειάζεται ρυθμίσεις, μια πρόσθετη εντολή /settings. Το bot μας είναι τόσο απλό όσο μια μπάλα, επομένως δεν χρειάζεται ακόμα ρυθμίσεις. Γράφουμε τις δύο πρώτες εντολές, τις οποίες στη συνέχεια θα επεξεργαστούμε στον κώδικα. Τώρα, εάν ο χρήστης εισάγει κάθετο (κάθετος χαρακτήρας: /) στο πεδίο εισαγωγής, θα εμφανιστεί μια λίστα εντολών για τη γρήγορη επιλογή του. Όλα είναι όπως στην εικόνα: στα αριστερά - ορίζουμε εντολές μέσω του bot-father. στα δεξιά, αυτές οι εντολές είναι ήδη διαθέσιμες στους χρήστες στο bot μας.
Λειτουργία Yandex
Τώρα που δημιουργήθηκε το bot μας, ας πάμε στο Yandex.Cloudγια να δημιουργήσουμε μια συνάρτηση που θα εκτελεί τον κώδικα bot μας. Εάν δεν έχετε συνεργαστεί με Yandex.Cloud διαβάστε το υλικό
Στην κονσόλα λοιπόν Yandex.Clouds στο αριστερό μενού πλοήγησης, επιλέξτε το στοιχείο Λειτουργίες Cloudκαι, στη συνέχεια, πατήστε το κουμπί Δημιουργήστε μια συνάρτηση. Του δίνουμε ένα όνομα και για εμάς - μια σύντομη περιγραφή.
Αφού πατήσετε το κουμπί δημιουργήσετε και μετά από μερικά δευτερόλεπτα, η νέα λειτουργία θα εμφανιστεί στη λίστα όλων των λειτουργιών. Κάντε κλικ στο όνομά της - αυτό θα μας μεταφέρει στη σελίδα Αναθεώρηση η λειτουργία μας. Εδώ πρέπει να ενεργοποιήσετεOn) διακόπτης δημόσια λειτουργίαγια να το καταστήσετε διαθέσιμο από το εξωτερικό (για Yandex.Clouds) του κόσμου και την αξία των πεδίων Σύνδεσμος για κλήση и Αναγνωριστικό - Κράτα το βαθιά μυστικό από όλους εκτός από τον εαυτό σου και το Telegram, ώστε διάφοροι απατεώνες να μην μπορούν να καλέσουν τη λειτουργία σου.
Τώρα χρησιμοποιώντας το αριστερό μενού μεταβείτε στο Ο συντάκτης λειτουργίες. Ας αφήσουμε για λίγο στην άκρη το δικό μας Έξυπνες Σκέψεις, και δημιουργήστε μια minimal συνάρτηση προτύπου για να ελέγξετε την απόδοση του bot μας... Ωστόσο, σε αυτό το πλαίσιο, αυτή η συνάρτηση είναι το bot μας... Εν ολίγοις, τώρα και εδώ θα φτιάξουμε ένα απλό bot που θα "καθρεφτίζει" ( δηλ. αποστολή πίσω ) αιτημάτων χρηστών. Αυτό το πρότυπο μπορεί πάντα να χρησιμοποιηθεί κατά τη δημιουργία νέων bot τηλεγραφήματος για να βεβαιωθείτε ότι η επικοινωνία με Τηλεγράφημα'om δουλεύει μια χαρά. Κάντε κλικ Δημιουργία αρχείου, κάλεσε το index.js, και on-line Επεξεργαστής κώδικα επικολλήστε τον ακόλουθο κώδικα σε αυτό το αρχείο:
module.exports.bot = async (event) => {
const body = JSON.parse(event.body);
const msg = {
'method': 'sendMessage',
'chat_id': body.message.chat.id,
'text': body.message.text
};
return {
'statusCode': 200,
'headers': {
'Content-Type': 'application/json'
},
'body': JSON.stringify(msg),
'isBase64Encoded': false
};
};
Στην κονσόλα Yandex.Cloud, θα πρέπει να μοιάζει κάπως έτσι:
Παρακάτω, αναφέρουμε σημείο εισόδου - index.botΌπου ευρετήριο αυτό είναι το όνομα αρχείου (index.js), και του bot - όνομα συνάρτησης (module.exports.bot). Αφήστε όλα τα άλλα πεδία "ως έχουν" και κάντε κλικ στο κουμπί στην επάνω δεξιά γωνία Δημιουργία έκδοσης. Μετά από λίγα δευτερόλεπτα, θα δημιουργηθεί αυτή η έκδοση της συνάρτησης. Αμέσως μετά τη δοκιμή webhook, θα δημιουργήσουμε μια νέα έκδοση − Έξυπνες Σκέψεις.
Αποθήκευση αντικειμένων
Τώρα που έχουμε στήσει Λειτουργία Yandexας πάμε όσο είμαστε στην κονσόλα Yandex.Clouds, δημιουργήστε ένα λεγόμενο. κουβάς (κάδος, δηλ. κάδος στα ρωσικά, σε καμία περίπτωση μπουκέτο) για την αποθήκευση αρχείων εικόνας που θα χρησιμοποιηθούν στο bot μας Έξυπνες Σκέψεις. Επιλέξτε από το αριστερό μενού πλοήγησης Αποθήκευση αντικειμένων, πάτα το κουμπί Δημιουργία κουβά, δώστε του ένα όνομα, για παράδειγμα, img-bucket, και το πιο σημαντικό, Πρόσβαση ανάγνωσης σε αντικείμενα δημοσιοποιήστε το - διαφορετικά το Telegram δεν θα βλέπει τις φωτογραφίες μας. Όλα τα άλλα πεδία παραμένουν αμετάβλητα. Πατάμε το κουμπί Δημιουργία κουβά.
Μετά από αυτό, μια λίστα με όλους τους κάδους μπορεί να μοιάζει κάπως έτσι (αν αυτός είναι ο μόνος σας κάδος):
Τώρα προτείνω να κάνετε κλικ στο όνομα του κάδου και να δημιουργήσετε έναν φάκελο μέσα σε αυτόν για να οργανώσετε την αποθήκευση εικόνων για διαφορετικές εφαρμογές. Για παράδειγμα, για ένα bot τηλεγραφήματος Έξυπνες Σκέψεις δημιούργησα ένα φάκελο που ονομάζεται tg-bot-smart-thoughts (Τίποτα, θα καταλάβω αυτόν τον κρυπτογράφηση). Δημιουργήστε κι εσείς ένα.
Τώρα μπορείτε να κάνετε κλικ στο όνομα του φακέλου, να μεταβείτε σε αυτόν και να ανεβάσετε αρχεία:
Και κάνοντας κλικ στο όνομα του αρχείου - αποκτήστε το URL για χρήση στο bot μας και γενικά - οπουδήποτε (αλλά, μην το δημοσιεύσετε URL αναίτια, αφού η κίνηση από αποθήκευση αντικειμένων φορτισμένα).
Εδώ, στην πραγματικότητα, αυτό είναι όλο αποθήκευση αντικειμένων. Τώρα θα ξέρετε τι να κάνετε όταν δείτε την προτροπή για αποστολή αρχείων εκεί.
Webhook
Τώρα θα εγκαταστήσουμε webhook — δηλ. όταν το bot λαμβάνει μια ενημέρωση (για παράδειγμα, ένα μήνυμα από τον χρήστη), από το διακομιστή Telegram στο δικό μας Λειτουργία Yandex θα σταλεί αίτημαζητήσει) με δεδομένα. Ακολουθεί μια συμβολοσειρά που μπορείτε απλά να επικολλήσετε στο πεδίο διεύθυνσης του προγράμματος περιήγησης και στη συνέχεια να ανανεώσετε τη σελίδα (αυτό πρέπει να γίνει μόνο μία φορά): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Απλώς αντικαταστήστε {bot_token} στο διακριτικό που λάβαμε από το πατέρα bot κατά τη δημιουργία του bot μας, και {webhook_url} - επί URL μας Λειτουργίες Yandex. Περίμενε ένα λεπτό! Αλλά RossKomCensorship απαγορεύει στους παρόχους στη Ρωσική Ομοσπονδία να παρέχουν τη διεύθυνση https://api.telegram.org
. Ναι, σωστά. Αλλά μπορείς να σκεφτείς κάτι. Μετά από όλα, μπορείτε, για παράδειγμα, να ρωτήσετε τη γιαγιά σας για αυτό στην Ουκρανία, το Ισραήλ ή τον Καναδά - δεν υπάρχουν "ρωσικές λογοκρισίες" εκεί και μόνο ο Θεός ξέρει πώς ζουν οι άνθρωποι χωρίς αυτό. Ως αποτέλεσμα, το αίτημα-απόκριση κατά την εγκατάσταση του webhook θα πρέπει να μοιάζει με αυτό:
Δοκιμές. Θα πρέπει να αντικατοπτρίζεται.
Αυτό είναι αλήθεια. Τα συγχαρητήριά μας - τώρα Λειτουργία Yandex έχει γίνει Telegram-bot!
Έξυπνες Σκέψεις
Και τώρα κάνουμε Έξυπνες Σκέψεις. Ο κωδικός είναι ανοιχτός και βρίσκεται
Κλωνοποιήστε το έργο και εγκαταστήστε τις εξαρτήσεις:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Κάντε τις αλλαγές που χρειάζεστε στο αρχείο index.js (προαιρετικό, δεν μπορείτε να αλλάξετε τίποτα). Δημιουργώ zip-αρχείο, με αρχείο index.js και φάκελο node_modules μέσα, για παράδειγμα, ονομάζεται smart.zip.
Τώρα πηγαίνετε στην κονσόλα στο δικό μας Λειτουργίες Yandex, επιλέξτε την καρτέλα Αρχείο ZIP, πάτα το κουμπί Επιλέξτε αρχείοκαι κατεβάστε το αρχείο μας smart.zip. Τέλος, στην επάνω δεξιά γωνία, κάντε κλικ στο κουμπί Δημιουργία έκδοσης.
Σε λίγα δευτερόλεπτα, όταν ενημερωθεί η λειτουργία, θα δοκιμάσουμε ξανά το bot μας. Τώρα πλέον δεν «καθρεφτίζει», αλλά παραδίδει έξυπνες σκέψεις!
Αυτά για σήμερα. Ακολουθούν και άλλα άρθρα. Εάν ενδιαφέρεστε να το διαβάσετε, εγγραφείτε στις ειδοποιήσεις νέων άρθρων. Μπορείτε να εγγραφείτε εδώ ή Telegram-Κανάλι
παραπομπές
Δωρεές
Πηγή: www.habr.com