Bot para VK em Python com MySQL em uma hora, parte 1

Existem muitos tutoriais na Internet sobre como escrever um bot para o Vkontakte, mas todos eles têm desvantagens significativas para iniciantes. Eles fornecem uma base muito mínima, devido à qual no futuro será difícil para iniciantes entender como certas coisas funcionam.

Neste tutorial, quero mostrar como fazer o bot mais simples com uma funcionalidade básica bastante grande.

Então, vamos começar.

Do que precisamos?


  • Python desde a versão 2.7 (todo o código foi testado nas versões 2.7.16 e 3.7.3)
  • Módulo PyMySQL
  • Módulo Vk_api
  • Módulo de solicitações
  • Grupo VKontakte (Atenção! O bot funcionará precisamente do lado do grupo, e não do lado da conta da pessoa)
  • Banco de dados (incluindo dados do usuário etc.)

Ligação


Primeiro, conectaremos todas as 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 

Agora você pode começar a configurar o bot e o banco de dados.

No meu caso, todos os dados estão no arquivo config.py. Você pode prescrevê-los em qualquer lugar. Isso não afetará a funcionalidade de forma alguma.

Conexão com o banco de dados


Para fazer isso, crie uma função usando o 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 função retornará dados para trabalho adicional com o banco de dados. Assim, substituímos nossos dados onde vemos "você_".

Configurar conexão bot


Primeiro, precisamos ir para as configurações do nosso grupo:



Selecione a guia Trabalhar com API e crie uma chave de acesso (no futuro, será útil nos conectarmos ao bot.



Vá para a guia "Long Poll API" e ative-o. Escolha também a versão mais recente disponível



Vá para "Tipos de eventos" e inclua tudo o que você precisa. Eu incluí por exemplo tudo



E o último. Vá para Mensagens> Configurações de bot e ative o recurso de bots. Agora você pode ir para o próprio programa.



Conectando um bot a um grupo


Agora vamos registrar a conexão do bot à pesquisa longa e a verificação de ações do 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: 

Agora incluímos o próprio bot, que receberá as mensagens recebidas e as analisará para mais trabalhos.

Trabalhar com um bot


Vamos adicionar uma função bot para responder a qualquer uma de nossas mensagens com nossas mensagens. Para fazer isso, após a última linha, escrevemos o seguinte:

 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) 

Agora, sobre o método vk.messages.send (), que é o método padrão do módulo vk_api. Você pode ler sobre os métodos na documentação oficial do Vkontakte (o link estará abaixo).

Permite enviar mensagens para os usuários.

O argumento user_id indica para qual conta essa mensagem deve ser enviada. No nosso caso, event.obj.from_id aponta para a conta que acabou de nos enviar uma mensagem. Ou seja, enviamos uma mensagem para a pessoa que a enviou.
Este argumento é obrigatório!

O argumento random_id é necessário para que o Vkontakte não envie mensagens 2 vezes. Este argumento é obrigatório!

O argumento da mensagem realmente indica qual mensagem devemos enviar. Event.obj.text armazena informações sobre o texto na mensagem que recebemos. Este argumento também é necessário.

Você pode ler mais sobre os argumentos desse método na página oficial do Vkontakte.

Lançamento


Agora nosso bot está pronto e podemos iniciá-lo. Após iniciar, você pode escrever com segurança no bot e ver o resultado.

Sumário


Esta parte 1 acabou. Nós aprendemos a ativar o bot. Configure-o e também envie mensagens.

Na parte 2, analisaremos como usar a biblioteca PyMySQL para inserir mensagens no banco de dados e assim por diante.

Obrigado pela leitura!

Recursos úteis


Documentação oficial da API do vkontakte
Página oficial do módulo PyMySQL

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


All Articles