So erstellen Sie einen einfachen Telegramm-Bot mit Python 3

So erstellen Sie einen einfachen Telegramm-Bot mit Python 3

Wenn Sie ein Telegram-Benutzer sind, haben Sie bestimmt irgendwann ein 'Gespräch' mit einem Chatbot geführt. Mit ihrer erstaunlichen Anpassbarkeit bieten die Bots von Telegram eine Vielzahl von Vorteilen – sei es für die Automatisierung von Aufgaben oder einfach nur für ein bisschen Spaß mit Spielen in Ihrer Chat-Gruppe.





Während manche die Entwicklung eines Bots als entmutigende Aufgabe empfinden, ist es das wirklich nicht. Mit der richtigen Planung können Sie einen Telegram-Bot in weniger als einer Stunde zum Laufen bringen! So erstellen Sie einen einfachen Telegram-Bot, der bei Aufforderung niedliche Bilder von Internetkatzen ausgibt.





Einstieg

Für dieses Tutorial verwenden wir Python 3, das Python-Telegramm-Bot und Anfragen Bibliothek und TheCatAPI .





Jeder Bot in Telegram hat ein einzigartiges Token, mit dem er kommunizieren kann Bot-API um die Messaging-Schnittstelle der App zu verwenden. Bot API, eine der beliebtesten Funktionen von Telegram bei Entwicklern, ermöglicht es Ihnen, ihre Nachrichten als Schnittstelle zu verwenden.

Warum sagt mein Telefon immer wieder, dass dieses Zubehör möglicherweise nicht unterstützt wird?

Um das Token zu erhalten, starten Sie ein Gespräch mit @BotFather Dies ist, wie der Name schon sagt, ein offizieller Bot, mit dem Sie Ihre eigenen Bots erstellen und anpassen können. Sie können über den angegebenen Link auf den Bot zugreifen oder alternativ auf Telegram nach „@botfather“ suchen.



Erstellen Sie im Chat Ihren Bot, indem Sie Folgendes eingeben: /neubot Befehl. Setzen Sie weiterhin den Namen und den Benutzernamen Ihres Bots (wir haben uns entschieden, unseren @pawsomebot zu nennen). Anschließend erhalten Sie ein für Ihren Bot eindeutiges Token.

Jetzt, wo wir alle Voraussetzungen haben, ist es an der Zeit, zum spannenden Teil zu kommen!





Bibliotheken installieren

Wenn Sie Windows verwenden, öffnen Sie die Eingabeaufforderung und geben Sie die folgenden Befehle ein:

pip install python-telegram-bot
pip install requests

Wenn Sie macOS oder Linux verwenden, verwenden Sie stattdessen die folgenden Befehle auf Ihrem Terminal. Stellen Sie außerdem unter Linux sicher, dass Sie als Benutzer mit sudo-Rechten angemeldet sind.





pip3 install python-telegram-bot
pip3 install requests

Schreiben des Programms

Erstellen Sie einen neuen Ordner auf Ihrem Computer und öffnen Sie ihn in Ihrem bevorzugten Editor. Erstellen Sie eine neue Datei und nennen Sie sie main.py. Diese Datei enthält den Quellcode für Ihren Bot.

Lassen Sie uns nun die zuvor installierten Bibliotheken zusammen mit einigen ihrer integrierten Funktionen importieren.

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

Der Ablauf des Programms von hier an besteht darin, auf TheCatAPI zuzugreifen, die URL eines zufälligen Bildes zu erhalten und dieses Bild an den Chat des Benutzers zu senden.

Beginnen wir mit einer Funktion zum Abrufen der Bild-URL, die mit dem Request-Modul durchgeführt werden kann. In dieser Funktion laden wir die JSON-Daten einer von TheCatAPI bereitgestellten Zufallsdatei und extrahieren deren URL zur späteren Verwendung. Um sich das Format des JSON-Objekts anzusehen, gehen Sie zu https://api.thecatapi.com/v1/images/search auf Ihrem Browser. Sie werden so etwas bemerken:

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

Beachten Sie, dass das JSON-Objekt ein Array ist, das ein Wörterbuch enthält. Dieses Wörterbuch enthält die URL mit dem Schlüssel 'url'. Um die URL zu extrahieren, müssen wir auf das erste Element des Arrays verweisen und dann auf den entsprechenden Schlüssel.

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

Als nächstes müssen wir dieses Bild in den Chat eines Benutzers senden. Dazu benötigen wir eine Bild-URL sowie die eindeutige ID des Chats des Nutzers. Erstellen wir dazu eine Wrapper-Funktion. Zuerst nennen wir die getUrl() . Funktion zum Abrufen der URL eines zufälligen Bildes --- diese URL ändert sich jedes Mal, wenn Ihr Programm die Funktion durchläuft.

Anschließend wird die Chat-ID des Empfängerbenutzers abgerufen, die den Zielort des Bots für Nachrichten definiert, und die URL über die integrierte Bot-API geparst Foto senden() Funktion.

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

Um mehr über die verschiedenen integrierten Funktionen der Bot API und deren Funktionsweise zu erfahren, können Sie sich gerne die von Telegram . ansehen offizielle Dokumentation nach diesem Tutorial.

Lassen Sie uns schließlich eine Funktion erstellen, die die Gesamtfunktion des Bots steuert. Bei dieser Funktion ---herkömmlich main() genannt -- senden wir mit dem Token, das wir zu Beginn des Tutorials erhalten haben, eine HTTP-Anfrage an die Bot-API und definieren dann, wie die Benutzerinteraktion des Bots aussehen soll. In einem so einfachen Fall wie unserem bedeutet dies im Wesentlichen, den Bot zu initiieren und den Bild senden () Funktion, wenn Sie vom Benutzer dazu aufgefordert werden.

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()

Ihr endgültiges Programm sollte so aussehen:

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()

Dein eigener Telegramm-Bot

Herzliche Glückwünsche! Sie haben Ihren eigenen stressabbauenden Bot entwickelt, der auf Aufforderung Open-Source-Bilder der süßesten Internetkatzen sendet. Versuchen Sie, Ihr Programm auszuführen, und geben Sie ein /Miau im Chat Ihres Bots, um ihn zu aktivieren.

Obwohl dies ein einfacher Bot mit eingeschränkter Funktionalität sein mag, zeigt er, wie leistungsstark das Bot-Entwicklungs-Ökosystem von Telegram ist. Sie können eine beliebige Anzahl komplexer Subroutinen und Funktionen hinzufügen, um die Funktionalität Ihres Bots zu verbessern - der Himmel sind keine Grenzen gesetzt. Um mehr über die großartigen Telegram-Bots zu erfahren, die Mitwirkende im Laufe der Jahre entwickelt haben, besuchen Sie unsere Liste nützlicher Telegram-Bots .

Auf Plattformen wie GitHub finden Sie auch eine Vielzahl von Open-Source-Lizenzprogrammen für Telegram-Bots. Die meisten Open-Source-Lizenzen ermöglichen es Ihnen, den Quellcode eines Programms zu verwenden, zu studieren, herunterzuladen oder zu ändern.

Hosten Sie Ihren Telegram Bot online

Nachdem Sie Ihren Bot jetzt in Betrieb genommen haben, versuchen Sie, main.py auf Ihrem PC zu schließen und den Bot in Ihrer Telegram-Messenger-App zu verwenden. Reagiert es immer noch auf die /Miau Befehl? Nein, tut es nicht.

Als Anfänger sind Sie vielleicht verwirrt, warum main.py auf Ihrem PC betriebsbereit sein muss, wenn Sie bereits einen Bot erstellt haben, der im Internet läuft. Der Grund dafür ist, dass das Programm Ihren PC als lokalen Server verwendet, um HTTP-Anfragen an die in diesem Programm verwendeten APIs zu senden.

Daher ist es weder praktikabel noch praktisch, das Programm jedes Mal ausführen zu müssen, wenn Sie die App verwenden möchten. Um dieses Problem zu lösen, müssen wir die Abhängigkeit des Bots von Ihrem Gerät entfernen

Eine Möglichkeit dazu besteht darin, mit einer kostengünstigen Leiterplatte (PCB) wie dem Raspberry Pi einen eigenen Webserver einzurichten und darauf Ihr Programm auszuführen. Es hat die gleichen Vorteile wie das Ausführen des Programms auf Ihrem PC, ohne die Kosten dafür zu haben, es Tag und Nacht laufen zu lassen, da PCBs in der Regel einen deutlich geringeren Energieverbrauch haben.

Alternativ können Sie Ihr Programm auch in der Cloud bereitstellen. Gehen Sie zu einer Web-App-Hosting-Plattform wie Heroku, AWS, Google Cloud oder Microsoft Azure und wählen Sie ein Abonnement, das Ihren Anforderungen am besten entspricht. Wir empfehlen, eine kostenlose Testversion oder ein kostenloses Abonnement zu wählen und es zu aktualisieren, wenn Sie den Umfang oder den Umfang Ihres Programms erweitern.

Teilen Teilen Tweet Email So hosten Sie Ihre Python-Website kostenlos auf Heroku

Müssen Sie eine kleine Website kostenlos hosten? Heroku könnte genau das sein, wonach Sie suchen.

Weiter lesen
Verwandte Themen
  • Programmierung
  • Python
  • Telegramm
  • Chatbot
  • Social-Media-Bots
Über den Autor Yash Chellani(10 Artikel veröffentlicht)

Yash ist ein aufstrebender Informatikstudent, der es liebt, Dinge zu bauen und über alles, was mit Technik zu tun hat, zu schreiben. In seiner Freizeit spielt er gerne Squash, liest eine Ausgabe des neuesten Murakami und jagt Drachen in Skyrim.

Mehr von Yash Chellani

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren