Bot para VK en Python con MySQL en una hora, parte 1

Hay muchos tutoriales en Internet sobre c贸mo escribir un bot para Vkontakte, pero todos tienen inconvenientes importantes para los principiantes. Proporcionan una base muy m铆nima debido a que en el futuro ser谩 dif铆cil para los principiantes comprender c贸mo funcionan ciertas cosas.

En este tutorial quiero mostrar c贸mo hacer el bot m谩s simple con una funcionalidad b谩sica bastante grande.

Entonces comencemos.

Que necesitamos


  • Python desde la versi贸n 2.7 (Todo el c贸digo se prob贸 en las versiones 2.7.16 y 3.7.3)
  • M贸dulo PyMySQL
  • M贸dulo vk_api
  • M贸dulo de solicitudes
  • Grupo VKontakte (隆Atenci贸n! El bot funcionar谩 precisamente desde el lado del grupo, y no desde el lado de la cuenta de la persona)
  • Base de datos (incluidos los datos del usuario, etc.)

Conexi贸n


Primero, conectaremos todas las bibliotecas:

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 

Ahora puede comenzar a configurar el bot y la base de datos.

En mi caso, todos los datos est谩n en el archivo config.py. Puedes prescribirlos en cualquier lugar. No afectar谩 la funcionalidad de ninguna manera.

Conexi贸n de base de datos


Para hacer esto, cree una funci贸n usando el m贸dulo 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 

Esta funci贸n devolver谩 datos para seguir trabajando con la base de datos. En consecuencia, sustituimos nuestros datos donde vemos "usted_".

Configurar conexi贸n bot


Primero, debemos ir a la configuraci贸n de nuestro grupo:



Seleccione la pesta帽a Trabajar con API y cree una clave de acceso (en el futuro, nos ser谩 煤til conectarnos al bot.



Vaya a la pesta帽a "Long Poll API" y act铆vela. Tambi茅n elija la 煤ltima versi贸n disponible



Vaya a "Tipos de eventos" y tambi茅n incluya todo lo que necesita. Inclu铆 por ejemplo todo



Y el 煤ltimo. Vaya a Mensajes> Configuraci贸n de bot y habilite la funci贸n de bots. Ahora puedes ir al programa en s铆.



Conectar un bot a un grupo


Ahora registraremos la conexi贸n del bot a una encuesta larga y la verificaci贸n de acciones desde el lado 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: 

Ahora hemos incluido el propio bot, que recibir谩 los mensajes entrantes y los analizar谩 para seguir trabajando.

Trabajar con un bot


Agreguemos una funci贸n bot para responder a cualquiera de nuestros mensajes con nuestros mensajes. Para hacer esto, despu茅s de la 煤ltima l铆nea escribimos esto:

 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) 

Ahora sobre el m茅todo vk.messages.send (). Este es el m茅todo est谩ndar del m贸dulo vk_api. Puede leer sobre los m茅todos en la documentaci贸n oficial de Vkontakte (el enlace estar谩 debajo).

Le permite enviar mensajes a los usuarios.

El argumento user_id indica a qu茅 cuenta se debe enviar este mensaje. En nuestro caso, event.obj.from_id apunta a la cuenta que nos acaba de enviar un mensaje. Es decir, enviamos un mensaje a la persona que nos lo envi贸.
Este argumento es obligatorio!

El argumento random_id es necesario para que Vkontakte no env铆e mensajes 2 veces. Este argumento es obligatorio!

El argumento del mensaje en realidad indica qu茅 mensaje debemos enviar. Event.obj.text almacena informaci贸n sobre el texto del mensaje que recibimos. Este argumento tambi茅n es obligatorio.

Puede leer m谩s sobre los argumentos de este m茅todo en la p谩gina oficial de Vkontakte.

Lanzamiento


Ahora nuestro bot est谩 listo y podemos comenzarlo. Despu茅s de comenzar, puede escribir de forma segura en el bot y ver el resultado.

Resumen


Esta parte 1 ha terminado. Aprendimos a encender el bot. Configurarlo, as铆 como enviar mensajes.

En la parte 2 analizaremos c贸mo usar la biblioteca PyMySQL para ingresar mensajes en la base de datos, etc.

Gracias por leer!

Recursos utiles


Documentaci贸n oficial de la API de vkontakte
P谩gina oficial del m贸dulo PyMySQL

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


All Articles