互联网上有很多教程为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=" , ")
现在,我们已经包含了该漫游器本身,它将接收传入的消息并对其进行分析以进行进一步的工作。
使用机器人
让我们添加一个bot函数来用我们的消息响应我们的任何消息。 为此,在最后一行之后,我们编写以下代码:
if event.type == VkBotEventType.MESSAGE_NEW:
现在介绍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模块页面