前面的章节,我们已经了解到了 QQBot 服务的搭建跟基础的使用,现在,我们就要使用 QQBot 来实现我们的机器人。

首先,我们得先注册我们的响应函数,这个函数的功能很简单,只是监听好友给我们发的信息,并给予回复,现在我们看看程序:

xiaoluo.py文件(这个文件的名字,没有特别的要求,按照自己的喜欢,这个是我随便取的名字,真正项目的时候,建议取名规范点):

1 # -*- coding: utf-8 -*-
 2 
 3 # onQQMessage :必须的注册函数的函数名称
 4 # bot         :QQBot 对象,提供 List/SendTo/Stop/Restart 等接口
 5 # contact     :QContact 对象,消息的发送者,具有 ctype/qq/uin/nick/mark/card/name 等属性
 6 # member      :QContact 对象,仅当本消息为 群消息或讨论组消息 时有效,代表实际发消息的成员
 7 # content     :str 对象,消息内容
 8 
 9 def onQQMessage(bot, contact, member, content):
10     if content == "-hello":
11         bot.SendTo(contact, "你好,我是小罗机器人")
12     elif content == '-stop':
13         bot.SendTo(contact, "小罗机器人已关闭")
14         bot.Stop()

contact:代表消息发送者,其 ctype 属性可以为 buddy(好友)/ group(群组)/ discuss(讨论组),表示是好友消息、群组消息、讨论组消息。

member:仅当本消息为群消息或者讨论组消息时有效,代表实际发消息的成员,它的 ctype 属性可以为 group-member / discuss-member,代表群成员 / 讨论组成员对象。如果本消息是好友消息时,则 member = None。

contact 和 member 都是 QContact 对象,不同类型的 QContact 对象所具有的 属性含义见: qcontact-attr

可以调用 QQBot 对象的 SendTo 接口向 QContact 对象发送消息,但要注意: 只可以向 好友 / 群 / 讨论组 发消息, 不可以向 群成员 / 讨论组成员 发送消息  。也就是说,只可以调用 bot.SendTo(contact, 'xxx') , 不可以调用  bot.SendTo(member, 'xxx') 。

将上边的文件放到 ~/.qqbot-tmp/plugins/ 目录下(这是基于 Linux 服务器的,我的 Windows 的目录是在 C:/Users/Administrator/.qqbot-tmp/plugins/,具体情况根据你的环境来看):

1 cd ~/.qqbot-tmp/plugins/

接下来我们就要注册这个响应函数了(我这里的文件是:xiaoluo.py):

1 qq plug xiaoluo

PythonQQ机器人模块 python qq机器人_发送消息

这样我们就已经成功的注册了这个响应函数了,接下来我们用另外一个 QQ 号对这个 QQ 号发送 -hello 和 -stop 这两条消息来测试下响应函数是否注册成功。

PythonQQ机器人模块 python qq机器人_群组_02

PythonQQ机器人模块 python qq机器人_群组_03

如果出现以上界面,那么恭喜你,你的 QQ机器人 已经搭建成功了。接下来,就可以扩展你的机器人性能了。

 

注意:

1、响应函数的函数名称必须是:onQQMessage,函数参数也必须和上面的一致;

2、要将注册函数的 .py 文件放在一下 ~/.qqbot-tmp/plugins/ 目录下,Windows 则一般是在 C:/用户/Administrator/.qqbot-tmp/plugins/ 这个文件夹下边,具体根据个人的情况而定。