Bot pour VK sur Python avec MySQL dans une heure, partie 1

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=" ,      ") # vk_session = vk_api.VkApi(token = "a6f87v8c9a9sa87a7af9a0f9f9v8a6s6c5b5m6n8bds09asc8d7b87d87bd87n" vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, "id   ") # longpoll = VkBotLongPoll(vk_session, "637182735") for event in longpoll.listen(): #  if event.type == VkBotEventType.MESSAGE_NEW: 

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: #   #       if event.obj.text != '': #       if event.from_user: vk.messages.send( user_id=event.obj.from_id, random_id=get_random_id(), message=event.obj.text) 

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 Vkontakte
Page officielle du module PyMySQL

Source: https://habr.com/ru/post/fr452162/


All Articles