Telegram – einer der beliebtesten Messenger der Welt, der eine große Anzahl von Möglichkeiten bietet, um zu kommunizieren und Bots zu erstellen. Das Verwalten und Sichern von Benutzern kann jedoch zu einer der wichtigsten Aufgaben bei der Entwicklung eines eigenen Bots werden.
Programmierung von Bots in aiogram - eine praktische und beliebte Bibliothek zum Erstellen von Bots in Python, die umfangreiche Möglichkeiten für die Arbeit mit der Telegramm-API bietet. In diesem Leitfaden zeigen wir Ihnen, wie Sie einem Bot auf Aiogram eine Benutzer-Bana-Funktion hinzufügen.
Mit der Benutzer-Bann-Funktion können Sie unerwünschten Benutzern den Zugriff auf bestimmte Bot-Funktionen verweigern. Dies kann beispielsweise erforderlich sein, um Spam oder unangemessenes Verhalten zu verhindern. Unser ausführlicher Leitfaden wird Ihnen helfen, diese Funktion in Ihrem Aiogram-Bot zu implementieren.
Wie füge ich dem Telegramm des Aiogram-Bot eine Bana-Funktion hinzu: Anweisung
Schritt 1: Installieren Sie Aiogram und erstellen Sie einen neuen Bot in Telegram
Installieren Sie zunächst die Aiogram-Bibliothek und erstellen Sie einen neuen Bot in Telegram, indem Sie der offiziellen Dokumentation folgen.
Schritt 2: Importieren Sie die benötigten Module
Importieren Sie die erforderlichen Module, um mit Aiogram zu arbeiten, und erstellen Sie eine Instanz der Dispatcher-Klasse:
from aiogram import Bot, Dispatcher, typesfrom aiogram.contrib.fsm_storage.memory import MemoryStoragebot = Bot(token="YOUR_TOKEN")storage = MemoryStorage()dp = Dispatcher(bot, storage=storage)
Schritt 3: Erstellen Sie einen Befehl für das Bann des Benutzers
Im nächsten Schritt erstellen wir einen Befehl, der die Bana-Funktion des Benutzers aufruft. Fügen Sie den folgenden Code hinzu, nachdem Sie den Manager erstellt haben:
@dp.message_handler(commands=['ban'])async def ban_user(message: types.Message):user_id = message.reply_to_message.from_user.idawait bot.kick_chat_member(chat_id=message.chat.id,user_id=user_id)await bot.send_message(chat_id=message.chat.id,text="Пользователь был забанен.")
Schritt 4: Registrieren Sie den Befehlshandler
Fügen Sie den folgenden Code hinzu, nachdem Sie den Befehlshandler erstellt haben:
dp.register_message_handler(ban_user, commands=['ban'], is_reply=True)
Schritt 5: Starten Sie den Bot
Starten Sie den Bot, um die Änderungen zu übernehmen und die Bannfunktion zu verwenden. Wenn Sie nun den Befehl /ban als Antwort auf eine Nachricht eines Benutzers verwenden, wird der Bot den betreffenden Benutzer in einer Gruppe oder einem Chat verbannen.
Die Integration der Bana-Funktion ermöglicht es Ihnen, die Kontrolle über Ihren Telegram-Bot zu erhöhen und die Sicherheit der Benutzer zu gewährleisten.
Aiogram installieren und konfigurieren
Bevor Sie mit der Entwicklung eines Bots mit Aiogram beginnen, müssen Sie ihn installieren und konfigurieren. In diesem Abschnitt werden wir uns ansehen, wie dies zu tun ist.
Schritt 1: Installieren von Aiogram
Stellen Sie zunächst sicher, dass Sie Python Version 3.7 oder höher installiert haben. Wenn Python nicht installiert ist, kann es von der offiziellen Website heruntergeladen werden.
Als nächstes öffnen Sie die Eingabeaufforderung (Terminal) und führen Sie den folgenden Befehl aus:
pip install aiogram
Dieser Befehl installiert das aiogram und seine Abhängigkeiten.
Schritt 2: Erstellen eines Telegram-Bots
Um mit Aiogram zu arbeiten, müssen Sie das Telegramm des Bot und sein Token haben. Wenn Sie bereits einen Bot haben, überspringen Sie diesen Schritt.
- Öffne Telegram und suche nach dem @BotFather-Bot.
- Schreiben Sie ihm den Befehl /newbot, um einen neuen Bot zu erstellen.
- Folgen Sie den Anweisungen von @BotFather und geben Sie den Namen Ihres Bots und seinen eindeutigen Username ein.
- Nachdem der Bot erfolgreich erstellt wurde, wird @BotFather Ihnen das Token Ihres Bot zur Verfügung stellen. Achten Sie darauf, es an einem sicheren Ort aufzubewahren.
Schritt 3: Einrichten von Aiogram
Jetzt, da Sie den Bot und sein Token haben, erstellen Sie eine neue Python-Datei mit der Erweiterung .py und importieren Sie das aiogram:
Als nächstes erstellen Sie eine neue Klasse namens MyBot und erben sie von aiogram.Bot . Übergeben Sie im Klassenkonstruktor das Token Ihres Bots:
class MyBot(aiogram.Bot): def __init__(self): super().__init__(token='IHR_TOKEN')
Erstellen Sie nun eine Instanz Ihres Bots:
Fertig! Jetzt sind Sie bereit, die Funktionalität Ihres Bots mit Aiogram zu erstellen.
Erstellen eines Verbannungsbefehls
Um dem Telegramm eines Bot eine Benutzer-Bana-Funktion mit Aiogram hinzuzufügen, müssen Sie einen Befehl für diese Aktion erstellen.
Installieren Sie zunächst die Aiogram-Bibliothek, falls Sie nicht bereits installiert ist:
pip install aiogram
Erstellen Sie dann eine Funktion, die aufgerufen wird, wenn Sie den Befehl für das Bana des Benutzers ausführen:
from aiogram import typesfrom aiogram.dispatcher import FSMContextfrom aiogram.dispatcher.filters import [email protected]_handler(Command("ban")) # команда для бана пользователяasync def ban_user(message: types.Message):# получаем ID пользователя, которого нужно заблокироватьuser_id = message.reply_to_message.from_user.idtry:# блокируем пользователяawait bot.kick_chat_member(message.chat.id, user_id)await message.reply(f"Пользователь с ID был заблокирован.")except Exception as e:# обрабатываем ошибку, если не удалось заблокировать пользователяawait message.reply("Не удалось заблокировать пользователя. Попробуйте снова.")# смена состояния для использования в дальнейших командахawait FSMContext.set_state("ban")
Hier haben wir den DP-Dekorator verwendet.message_handler , um anzugeben, dass die Funktion beim Ausführen des Befehls "/ban" aufgerufen werden soll. Innerhalb der Funktion erhalten wir die ID des Benutzers, den wir blockieren möchten, und sperren ihn mit der bot-Methode.kick_chat_member und senden Sie eine Bestätigungsnachricht an die Sperre.
Wir behandeln auch einen möglichen Fehler mit einem try-except-Block, um den Benutzer darüber zu informieren, ob der Benutzer nicht gesperrt werden konnte.
Außerdem verwenden wir die Methode FSMContext.set_state , um den Status in "ban" zu ändern. Dies ist nützlich, wenn Sie diesen Zustand in weiteren Bot-Befehlen verwenden möchten.
Jetzt können Sie diesen Befehl zu Ihrem Telegramm-Bot hinzufügen, um Benutzer mit dem Befehl "/ban" blockieren zu können.
Integration der Bana-Funktion in den Bot-Code
Schritt 1: Erstellen Sie eine neue Funktion mit dem Namen "ban_user".
Schritt 2: Definieren Sie in der Funktion "ban_user" den Parameter "user_id", der die zu sperrende Benutzer-ID enthält.
Schritt 3: Verwenden der Methode "bot.kick_chat_member", rufen Sie den Befehl auf, um den Benutzer zu sperren, indem Sie die Benutzer-ID und die ID des aktuellen Chats übergeben.
Schritt 4: Fügen Sie die Ausnahmebehandlung "ChatNotFound" für den Fall hinzu, dass der aktuelle Chat nicht gefunden wird.
Schritt 5: Fügen Sie in der Funktion "ban_user" einen Kommentar hinzu, der den Zweck dieser Funktion und die Eingabeparameter erläutert.
Schritt 6: Rufen Sie die Funktion "ban_user" an der richtigen Stelle Ihres Codes auf und übergeben Sie die Benutzer-ID zum Sperren.
Schritt 7: Fügen Sie vor dem Aufruf der Funktion "ban_user" eine Überprüfung auf Administratorrechte hinzu. Wenn der aktuelle Benutzer kein Administrator ist, geben Sie eine Meldung aus, dass Sie nicht über die erforderlichen Rechte verfügen.
Schritt 8: Fügen Sie die Ausnahmebehandlung "Unauthorized" und "BotBlocked" hinzu, wenn der Bot keine Berechtigung zum Sperren des Benutzers hat oder der Benutzer selbst gesperrt ist.
Schritt 9: Überprüfen Sie die Funktion "ban_user", indem Sie va aufrufen
Testen und Debuggen einer Ban-Funktion
Nachdem wir unserem Telegramm-Bot eine Benutzer-Bana-Funktion hinzugefügt haben, ist es wichtig, Tests durchzuführen und zu debuggen, um sicherzustellen, dass sie ordnungsgemäß funktioniert.
Zunächst sollten Sie die Funktion auf verschiedene Arten von Benutzern testen. Erstellen Sie Testkonten oder bitten Sie Freunde, Ihnen beim Testen zu helfen. Stellen Sie sicher, dass die Bannfunktion den Zugriff entsprechend blockiert und die Interaktion mit dem Bot deaktiviert.
Neben der grundlegenden Funktionalität ist es auch wichtig, mögliche Fehler und Ausnahmesituationen zu berücksichtigen. Stellen Sie sicher, dass die Funktion falsche Daten korrekt verarbeitet, z. B. ein falsches Benutzerformat oder keine erforderlichen Zugriffsrechte.
Wenn Sie während des Testvorgangs Fehler oder Probleme feststellen, denken Sie daran, dass die Softwareentwicklung ein iterativer Prozess ist. Verwenden Sie die Fehlerinformationen, um die Funktion zu verbessern und die Zuverlässigkeit zu verbessern.
Zusätzlich können Sie beim Erstellen einer Bana-Funktion einen Debugger verwenden. Es wird Ihnen helfen, mögliche Fehler zu identifizieren und zu korrigieren, damit Sie überprüfen können, ob die Funktion in verschiedenen Phasen korrekt funktioniert. Der Debugger bietet auch die Möglichkeit, die Werte von Variablen während der Codeausführung anzuzeigen, sodass Sie Fehler sehen und korrigieren können.
Nachdem Sie die Ban-Funktion getestet und debuggt haben, sollten Sie einen vollständig funktionierenden und zuverlässigen Mechanismus haben, um Benutzer in Ihrem Telegramm-Bot zu sperren.