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=" , ")
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:
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 vkontaktePágina oficial do módulo PyMySQL