一个小时内用MySQL在Python上使用VK进行Bot,第1部分

互联网上有很多教程为Vkontakte编写机器人,但是对于初学者来说,它们都有很多弊端。 它们提供了非常小的基础,因此,将来初学者将很难理解某些事物的工作原理。

在本教程中,我想展示如何使用具有相当大的基本功能的最简单的机器人。

因此,让我们开始吧。

我们需要什么?


  • 自2.7版以来的Python(所有代码均已在2.7.16和3.7.3版上进行了测试)
  • PyMySQL模块
  • Vk_api模块
  • 请求模块
  • Vkontakte小组(注意!该机器人将完全在小组的一边工作,而不是在该人帐户的一边工作)
  • 数据库(包括用户数据等)

连接方式


首先,我们将连接所有库:

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 

现在,您可以开始配置机器人和数据库。

就我而言,所有数据都位于config.py文件中。 您可以在任何地方开处方。 它不会以任何方式影响功能。

数据库连接


为此,请使用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 

此函数将返回数据以进一步处理数据库。 因此,我们在看到“ you_”的地方替换数据。

配置机器人连接


首先,我们需要进入小组的设置:



选择[使用API​​]标签并创建访问密钥(以后,对我们来说,连接到该漫游器将非常有用。



转到“长轮询API”标签并启用它。 同时选择最新的可用版本



转到“事件类型”,还包括您需要的所有内容。 我包括了所有的东西



还有最后一个。 转到消息>机器人设置并启用机器人功能。 现在,您可以转到程序本身。



将漫游器连接到组


现在,我们将注册该机器人到长时间轮询的连接以及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: 

现在,我们已经包含了该漫游器本身,它将接收传入的消息并对其进行分析以进行进一步的工作。

使用机器人


让我们添加一个bot函数来用我们的消息响应我们的任何消息。 为此,在最后一行之后,我们编写以下代码:

 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) 

现在介绍vk.messages.send()方法,这是vk_api模块的标准方法。 您可以在Vkontakte官方文档中阅读有关方法的信息(链接将在下面)。

它允许您向用户发送消息。

user_id参数指示此消息应发送到哪个帐户。 在我们的例子中, event.obj.from_id指向刚向我们发送消息的帐户。 也就是说,我们将消息发送给发送给我们的人。
此参数是必需的!

需要random_id参数,以便Vkontakte不会发送消息两次。 此参数是必需的!

message参数实际上指示我们应该发送的消息。 Event.obj.text存储有关我们收到的消息中哪些文本的信息。 此参数也是必需的。

您可以在Vkontakte官方页面上了解有关此方法的参数的更多信息。

发射


现在我们的机器人已经准备就绪,我们可以启动它了。 启动后,您可以安全地写入bot并查看结果。

总结


第一部分已经结束。 我们学会了打开机器人。 配置它,以及发送消息。

在第2部分中,我们将分析如何使用PyMySQL库将消息输入数据库等等。

感谢您的阅读!

有用的资源


官方的Vkontakte API文档
官方PyMySQL模块页面

Source: https://habr.com/ru/post/zh-CN452162/


All Articles