Es gibt viele Tutorials im Internet, wie man einen Bot für Vkontakte schreibt, aber alle haben erhebliche Nachteile für Anfänger. Sie bieten eine sehr minimale Basis, aufgrund derer Anfänger in Zukunft nur schwer verstehen können, wie bestimmte Dinge funktionieren.
In diesem Tutorial möchte ich zeigen, wie man den einfachsten Bot mit einer ziemlich großen Grundfunktionalität erstellt.
Also fangen wir an.
Was brauchen wir
- Python seit Version 2.7 (Der gesamte Code wurde in den Versionen 2.7.16 und 3.7.3 getestet.)
- PyMySQL-Modul
- Vk_api-Modul
- Anforderungsmodul
- Vkontakte-Gruppe (Achtung! Der Bot arbeitet genau von der Seite der Gruppe und nicht von der Seite des Kontos der Person)
- Datenbank (einschließlich Benutzerdaten usw.)
Verbindung
Zuerst verbinden wir alle Bibliotheken:
import vk_api from vk_api.utils import get_random_id from from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import pymysql.cursors import requests
Jetzt können Sie mit der Konfiguration des Bots und der Datenbank beginnen.
In meinem Fall befinden sich alle Daten in der Datei config.py. Sie können sie überall verschreiben. Die Funktionalität wird in keiner Weise beeinträchtigt.
Datenbankverbindung
Erstellen Sie dazu eine Funktion mit dem PyMySQL-Modul:
def get_connection(): connection = pymysql.connect(host='you_host', user='you_user', password='you_password', db='you_db' charset='utf8mb4', cursorclass=mymysql.cursors.DictCursor) return connection
Diese Funktion gibt Daten für die weitere Arbeit mit der Datenbank zurück. Dementsprechend ersetzen wir unsere Daten dort, wo wir "you_" sehen.
Konfigurieren Sie die Bot-Verbindung
Zuerst müssen wir zu den Einstellungen unserer Gruppe gehen:

Wählen Sie die Registerkarte Mit API arbeiten und erstellen Sie einen Zugriffsschlüssel (in Zukunft wird es für uns hilfreich sein, eine Verbindung zum Bot herzustellen.

Wechseln Sie zur Registerkarte "Long Poll API" und aktivieren Sie sie. Wählen Sie auch die neueste verfügbare Version

Gehen Sie zu den "Ereignistypen" und geben Sie auch alles an, was Sie brauchen. Ich habe zum Beispiel alles aufgenommen

Und der letzte. Gehen Sie zu Nachrichten> Bot-Einstellungen und aktivieren Sie die Bots-Funktion. Jetzt können Sie zum Programm selbst gehen.

Verbinden eines Bots mit einer Gruppe
Jetzt werden wir die Verbindung des Bots zu einer langen Umfrage und die Überprüfung von Aktionen von der Seite von Vkontakte registrieren:
vk_session = vk_api.VkApi(token=" , ")
Jetzt haben wir den Bot selbst aufgenommen, der eingehende Nachrichten empfängt und sie für die weitere Arbeit analysiert.
Arbeite mit einem Bot
Fügen wir eine Bot-Funktion hinzu, um auf jede unserer Nachrichten mit unseren Nachrichten zu antworten. Dazu schreiben wir nach der letzten Zeile Folgendes:
if event.type == VkBotEventType.MESSAGE_NEW:
Nun zur Methode vk.messages.send (). Dies ist die Standardmethode des Moduls vk_api. Informationen zu den Methoden finden Sie in der offiziellen Vkontakte-Dokumentation (der Link befindet sich unten).
Sie können damit Nachrichten an Benutzer senden.
Das Argument
user_id gibt an, an welches Konto diese Nachricht gesendet werden soll. In unserem Fall zeigt
event.obj.from_id auf das Konto, das uns gerade eine Nachricht gesendet hat. Das heißt, wir senden eine Nachricht an die Person, die sie uns gesendet hat.
Dieses Argument ist erforderlich!
Das Argument
random_id wird benötigt, damit Vkontakte keine Nachrichten zweimal sendet. Dieses Argument ist erforderlich!
Das
Nachrichtenargument gibt tatsächlich an, welche Nachricht gesendet werden soll. Event.obj.text speichert Informationen darüber, welchen Text in der Nachricht wir erhalten haben. Dieses Argument ist ebenfalls erforderlich.
Weitere Informationen zu den Argumenten für diese Methode finden Sie auf der offiziellen Vkontakte-Seite.
Starten
Jetzt ist unser Bot fertig und wir können es starten. Nach dem Start können Sie sicher in den Bot schreiben und das Ergebnis sehen.
Zusammenfassung
Dieser Teil 1 ist vorbei. Wir haben gelernt, den Bot einzuschalten. Konfigurieren Sie es und senden Sie Nachrichten.
In Teil 2 werden wir analysieren, wie die PyMySQL-Bibliothek zum Eingeben von Nachrichten in die Datenbank usw. verwendet wird.
Danke fürs Lesen!
Nützliche Ressourcen
Offizielle vkontakte api DokumentationOffizielle PyMySQL-Modulseite