Πώς να δημιουργήσετε ένα βασικό Telegram Bot με Python 3

Πώς να δημιουργήσετε ένα βασικό Telegram Bot με Python 3

Εάν είστε χρήστης του Telegram, σίγουρα κάποια στιγμή θα είχατε μια «συνομιλία» με ένα chatbot. Με την εκπληκτική προσαρμοστικότητά τους, τα ρομπότ του Telegram προσφέρουν μια ποικιλία πλεονεκτημάτων-είτε πρόκειται για αυτοματοποίηση εργασιών είτε για απλή διασκέδαση με παιχνίδια στην ομάδα συνομιλίας σας.





Ενώ ορισμένοι μπορεί να θεωρούν ότι η ανάπτυξη ενός bot είναι μια αποθαρρυντική εργασία, στην πραγματικότητα δεν είναι. Με τον σωστό προγραμματισμό, μπορείτε να δημιουργήσετε ένα Telegram bot σε λιγότερο από μία ώρα! Δείτε πώς μπορείτε να δημιουργήσετε ένα απλό Telegram bot που βγάζει χαριτωμένες εικόνες από γάτες στο Διαδίκτυο όταν σας ζητηθεί.





Ξεκινώντας

Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε το Python 3, το python-telegram-bot και αιτήσεων βιβλιοθήκη, και TheCatAPI Το





Κάθε bot στο Telegram έχει ένα μοναδικό διακριτικό που το βοηθά να επικοινωνεί Bot API για να χρησιμοποιήσετε τη διεπαφή ανταλλαγής μηνυμάτων της εφαρμογής. Το Bot API, ένα από τα πιο δημοφιλή χαρακτηριστικά του Telegram μεταξύ των προγραμματιστών, σας επιτρέπει να χρησιμοποιείτε τα μηνύματά του ως διεπαφή.

πώς να αλλάξετε τη θέση δημιουργίας αντιγράφων ασφαλείας του iTunes Windows 10

Για να λάβετε το διακριτικό, ξεκινήστε μια συνομιλία με @BotFather το οποίο, όπως υποδηλώνει το όνομα, είναι ένα επίσημο bot που σας επιτρέπει να δημιουργείτε και να προσαρμόζετε τα δικά σας bots. Μπορείτε να αποκτήσετε πρόσβαση στο bot χρησιμοποιώντας τον συγκεκριμένο σύνδεσμο ή εναλλακτικά να αναζητήσετε το '@botfather' στο Telegram.



Μόλις μπείτε στη συνομιλία, δημιουργήστε το bot σας πληκτρολογώντας το /newbot εντολή. Συνεχίστε να ορίζετε το όνομα και το όνομα χρήστη του bot σας (αποφασίσαμε να ονομάσουμε το δικό μας @pawsomebot). Μετά από αυτό, θα λάβετε ένα διακριτικό μοναδικό για το bot σας.

Τώρα που έχουμε όλες τις προϋποθέσεις, ήρθε η ώρα να φτάσουμε στο συναρπαστικό κομμάτι!





Εγκατάσταση Βιβλιοθηκών

Εάν χρησιμοποιείτε Windows, ανοίξτε τη γραμμή εντολών και πληκτρολογήστε τις ακόλουθες εντολές:

pip install python-telegram-bot
pip install requests

Εάν χρησιμοποιείτε macOS ή Linux, χρησιμοποιήστε τις ακόλουθες εντολές στο τερματικό σας. Επιπλέον στο Linux, βεβαιωθείτε ότι έχετε συνδεθεί ως χρήστης με δικαιώματα sudo.





pip3 install python-telegram-bot
pip3 install requests

Γράφοντας το Πρόγραμμα

Δημιουργήστε έναν νέο φάκελο στον υπολογιστή σας και ανοίξτε τον στο αγαπημένο σας πρόγραμμα επεξεργασίας. Δημιουργήστε ένα νέο αρχείο και ονομάστε το main.py. Αυτό το αρχείο θα περιέχει τον πηγαίο κώδικα για το bot σας.

Τώρα, ας εισάγουμε τις βιβλιοθήκες που εγκαταστήσαμε νωρίτερα μαζί με μερικές από τις ενσωματωμένες λειτουργίες τους.

from telegram.ext import Updater, CommandHandler
import requests
import re

Η ροή του προγράμματος από εδώ και πέρα ​​είναι η πρόσβαση στο TheCatAPI, η λήψη της διεύθυνσης URL μιας τυχαίας εικόνας και η αποστολή αυτής της εικόνας στη συνομιλία του χρήστη.

Ας ξεκινήσουμε με μια συνάρτηση για τη λήψη της διεύθυνσης URL της εικόνας, η οποία μπορεί να γίνει χρησιμοποιώντας τη μονάδα αιτημάτων. Σε αυτήν τη συνάρτηση, φορτώνουμε τα δεδομένα JSON ενός τυχαίου αρχείου που παρέχονται από το TheCatAPI και εξάγουμε τη διεύθυνση URL του για μεταγενέστερη χρήση. Για να δείτε τη μορφή του αντικειμένου JSON, μεταβείτε στο https://api.thecatapi.com/v1/images/search στο πρόγραμμα περιήγησής σας. Θα παρατηρήσετε κάτι σαν αυτό:

[{'breeds':[],'id':'a8c','url':'url.jpg','width':800,'height':533}]

Παρατηρήστε ότι το αντικείμενο JSON είναι ένας πίνακας που περιέχει ένα λεξικό. Αυτό το λεξικό περιέχει τη διεύθυνση URL με το κλειδί 'url'. Για να εξαγάγετε τη διεύθυνση URL, πρέπει να αναφέρουμε το πρώτο στοιχείο του πίνακα και, στη συνέχεια, το σχετικό κλειδί.

def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url

Στη συνέχεια, πρέπει να στείλουμε αυτήν την εικόνα στη συνομιλία ενός χρήστη. Για αυτό, χρειαζόμαστε μια διεύθυνση URL εικόνας καθώς και το μοναδικό αναγνωριστικό της συνομιλίας του χρήστη. Ας δημιουργήσουμε μια λειτουργία περιτύλιξης για να το κάνουμε αυτό. Αρχικά, καλούμε το getUrl () Το συνάρτηση για τη λήψη της διεύθυνσης URL μιας τυχαίας εικόνας --- αυτή η διεύθυνση URL αλλάζει κάθε φορά που το πρόγραμμά σας επαναλαμβάνεται μέσω της συνάρτησης.

Στη συνέχεια ακολουθεί η λήψη του αναγνωριστικού συνομιλίας του παραλήπτη, το οποίο καθορίζει τη θέση προορισμού του bot για μηνύματα και την ανάλυση της διεύθυνσης URL μέσω του ενσωματωμένου API του Bot Στείλε φωτογραφία() λειτουργία.

def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)

Για να μάθετε περισσότερα σχετικά με τις διάφορες ενσωματωμένες λειτουργίες του Bot API και πώς λειτουργούν, μη διστάσετε να δείτε τις Telegram επίσημη τεκμηρίωση μετά από αυτό το σεμινάριο.

Τέλος, ας δημιουργήσουμε μια συνάρτηση που ελέγχει τη συνολική λειτουργία του bot. Αυτή η συνάρτηση --- συμβατικά ονομάζεται main () --- είναι όπου στέλνουμε ένα αίτημα HTTP στο Bot API χρησιμοποιώντας το διακριτικό που λάβαμε στην αρχή του σεμιναρίου και στη συνέχεια καθορίζουμε πώς θα είναι η αλληλεπίδραση χρήστη του bot. Σε μια περίπτωση τόσο απλή όσο η δική μας, αυτό σημαίνει ουσιαστικά την εκκίνηση του bot και την κλήση του sendImage () λειτουργία όταν σας ζητηθεί από το χρήστη.

def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Το τελικό σας πρόγραμμα πρέπει να μοιάζει με αυτό:

from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Το δικό σας Telegram Bot

Συγχαρητήρια! Έχετε δημιουργήσει το δικό σας bot που ανακουφίζει από το άγχος και στέλνει εικόνες ανοιχτού κώδικα με τις πιο χαριτωμένες γάτες στο Διαδίκτυο, όταν σας ζητηθεί. Δοκιμάστε να εκτελέσετε το πρόγραμμα και να πληκτρολογήσετε /Νιάου στη συνομιλία του bot σας για να το ενεργοποιήσετε.

Ενώ αυτό μπορεί να είναι ένα απλό bot με περιορισμένη λειτουργικότητα, δείχνει πόσο ισχυρό είναι το οικοσύστημα ανάπτυξης του Telegram bot. Μπορείτε να προσθέσετε οποιονδήποτε σύνθετο υπορουτίνα και δυνατότητες για να βελτιώσετε τη λειτουργικότητα του bot σας --- ο ουρανός είναι το όριο. Για να μάθετε περισσότερα σχετικά με τα φοβερά ρομπότ Telegram που έχουν δημιουργήσει οι συνεργάτες αυτά τα χρόνια, ελέγξτε τα δικά μας λίστα χρήσιμων bots Telegram Το

Μπορείτε επίσης να βρείτε μια ποικιλία προγραμμάτων με άδεια ανοικτού κώδικα για bots Telegram σε πλατφόρμες όπως το GitHub. Οι περισσότερες άδειες ανοιχτού κώδικα σάς επιτρέπουν να χρησιμοποιείτε, να μελετάτε, να κατεβάζετε ή να τροποποιείτε τον πηγαίο κώδικα ενός προγράμματος.

Φιλοξενήστε το Telegram Bot Online σας

Τώρα που έχετε ξεκινήσει να λειτουργεί το bot σας, δοκιμάστε να κλείσετε το main.py στον υπολογιστή σας και χρησιμοποιήστε το bot στην εφαρμογή Telegram messenger. Ανταποκρίνεται ακόμα στο /Νιάου εντολή? Όχι, δεν το κάνει.

Ως αρχάριος, μπορεί να μπερδεύεστε γιατί το main.py στον υπολογιστή σας πρέπει να λειτουργεί όταν έχετε ήδη δημιουργήσει ένα bot που λειτουργεί στο διαδίκτυο. Ο λόγος για αυτό είναι ότι το πρόγραμμα χρησιμοποιεί τον υπολογιστή σας ως τοπικό διακομιστή για την αποστολή αιτημάτων HTTP στα API που χρησιμοποιούνται σε αυτό το πρόγραμμα.

Ως εκ τούτου, το να τρέχετε το πρόγραμμα κάθε φορά που θέλετε να χρησιμοποιήσετε την εφαρμογή δεν είναι ούτε εφικτό ούτε βολικό. Για να επιλύσουμε αυτό το ζήτημα, πρέπει να καταργήσουμε την εξάρτηση του bot από τη συσκευή σας

Ένας τρόπος για να το κάνετε αυτό είναι να χρησιμοποιήσετε μια πλακέτα τυπωμένου κυκλώματος χαμηλού κόστους (PCB), όπως το Raspberry Pi, για να δημιουργήσετε τον δικό σας διακομιστή ιστού και να τον χρησιμοποιήσετε για να εκτελέσετε το πρόγραμμά σας. Έχει τα ίδια οφέλη με την εκτέλεση του προγράμματος στον υπολογιστή σας χωρίς το κόστος διατήρησής του όλη μέρα και νύχτα, καθώς τα PCB τείνουν να έχουν σημαντικά χαμηλότερο ενεργειακό αποτύπωμα.

Εναλλακτικά, μπορείτε επίσης να αναπτύξετε το πρόγραμμά σας στο cloud. Προχωρήστε σε μια πλατφόρμα φιλοξενίας εφαρμογών ιστού όπως το Heroku, το AWS, το Google Cloud ή το Microsoft Azure και επιλέξτε μια συνδρομή που ταιριάζει καλύτερα στις ανάγκες σας. Σας συνιστούμε να επιλέξετε μια δωρεάν δοκιμή ή συνδρομή και να την αναβαθμίσετε καθώς αυξάνετε την κλίμακα ή το εύρος του προγράμματος σας.

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Πώς να φιλοξενήσετε τον ιστότοπό σας Python δωρεάν στο Heroku

Χρειάζεστε να φιλοξενήσετε έναν μικρό ιστότοπο χωρίς κόστος; Το Heroku μπορεί να είναι ακριβώς αυτό που ψάχνετε.

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • Πύθων
  • Τηλεγράφημα
  • Chatbot
  • Bots κοινωνικής δικτύωσης
Σχετικά με τον Συγγραφέα Γιάς Τσελάνι(Δημοσιεύθηκαν 10 άρθρα)

Ο Yash είναι ένας επίδοξος φοιτητής πληροφορικής που αγαπά να χτίζει πράγματα και να γράφει για όλα τα τεχνολογικά πράγματα. Στον ελεύθερο χρόνο του, του αρέσει να παίζει Squash, να διαβάζει ένα αντίγραφο του τελευταίου Murakami και να κυνηγά δράκους στο Skyrim.

Περισσότερα από τον Yash Chellani

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή