Il existe de nombreux tutoriels sur Internet pour écrire un bot pour Vkontakte, mais ils présentent tous des inconvénients importants pour les débutants. Ils donnent une base très minimale en raison de laquelle, à l'avenir, il sera difficile pour les débutants de comprendre comment certaines choses fonctionnent.
Dans ce tutoriel, je veux montrer comment créer le bot le plus simple avec une fonctionnalité de base assez large.
Commençons donc.
De quoi avons-nous besoin?
- Python depuis la version 2.7 (Tout le code a été testé sur les versions 2.7.16 et 3.7.3)
- Module PyMySQL
- Module Vk_api
- Module de demandes
- Groupe Vkontakte (Attention! Le bot fonctionnera précisément du côté du groupe, et non du côté du compte de la personne)
- Base de données (y compris les données utilisateur, etc.)
Connexion
Tout d'abord, nous allons connecter toutes les bibliothèques:
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
Vous pouvez maintenant commencer à configurer le bot et la base de données.
Dans mon cas, toutes les données se trouvent dans le fichier config.py. Vous pouvez les prescrire n'importe où. Cela n'affectera en rien la fonctionnalité.
Connexion à la base de données
Pour ce faire, créez une fonction à l'aide du module PyMySQL:
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
Cette fonction renverra des données pour un travail ultérieur avec la base de données. En conséquence, nous substituons nos données là où nous voyons "vous_".
Configurer la connexion bot
Tout d'abord, nous devons aller dans les paramètres de notre groupe:

Sélectionnez l'onglet Travailler avec l'API et créez une clé d'accès (à l'avenir, il nous sera utile de nous connecter au bot.

Accédez à l'onglet «API Long Poll» et activez-le. Choisissez également la dernière version disponible

Accédez aux "Types d'événements" et incluez également tout ce dont vous avez besoin. J'ai inclus par exemple tout

Et le dernier. Accédez à Messages> Paramètres du bot et activez la fonction des bots. Vous pouvez maintenant accéder au programme lui-même.

Connecter un bot à un groupe
Nous allons maintenant enregistrer la connexion du bot au long sondage et la vérification des actions du côté de Vkontakte:
vk_session = vk_api.VkApi(token=" , ")
Nous avons maintenant inclus le bot lui-même, qui recevra les messages entrants et les analysera pour un travail ultérieur.
Travailler avec un bot
Ajoutons une fonction de bot pour répondre à n'importe lequel de nos messages avec nos messages. Pour ce faire, après la dernière ligne, nous écrivons ceci:
if event.type == VkBotEventType.MESSAGE_NEW:
Maintenant à propos de la méthode vk.messages.send (). Il s'agit de la méthode standard du module vk_api. Vous pouvez lire les méthodes sur la documentation officielle de Vkontakte (le lien sera ci-dessous).
Il vous permet d'envoyer des messages aux utilisateurs.
L'argument
user_id indique à quel compte ce message doit être envoyé. Dans notre cas,
event.obj.from_id pointe vers le compte qui vient de nous envoyer un message. Autrement dit, nous envoyons un message à la personne qui nous l'a envoyé.
Cet argument est obligatoire!
L'argument
random_id est nécessaire pour que Vkontakte n'envoie pas de messages 2 fois. Cet argument est obligatoire!
L'argument
message indique en fait quel message nous devons envoyer. Event.obj.text stocke des informations sur le texte du message que nous avons reçu. Cet argument est également requis.
Vous pouvez en savoir plus sur les arguments de cette méthode sur la page officielle de Vkontakte.
Lancement
Maintenant, notre bot est prêt et nous pouvons le démarrer. Après le démarrage, vous pouvez écrire en toute sécurité au bot et voir le résultat.
Résumé
Cette partie 1 est terminée. Nous avons appris à allumer le bot. Configurez-le, ainsi que d'envoyer des messages.
Dans la partie 2, nous analyserons comment utiliser la bibliothèque PyMySQL pour entrer des messages dans la base de données, etc.
Merci d'avoir lu!
Ressources utiles
Documentation officielle de l'API VkontaktePage officielle du module PyMySQL