前面的章节,我们已经了解到了 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 defonQQMessage(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 对象所具有的 属性含义见:
可以调用 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
这样我们就已经成功的注册了这个响应函数了,接下来我们用另外一个 QQ 号对这个 QQ 号发送 -hello 和 -stop 这两条消息来测试下响应函数是否注册成功。
如果出现以上界面,那么恭喜你,你的 QQ机器人 已经搭建成功了。接下来,就可以扩展你的机器人性能了。
注意:
1、响应函数的函数名称必须是:onQQMessage,函数参数也必须和上面的一致;
2、要将注册函数的 .py 文件放在一下 ~/.qqbot-tmp/plugins/ 目录下,Windows 则一般是在 C:/用户/Administrator/.qqbot-tmp/plugins/ 这个文件夹下边,具体根据个人的情况而定。
参考资料: