本文实例为大家分享了python qqbot库的qq聊天机器人的具体代码,供大家参考,具体内容如下
项目地址:https://github.com/pandolia/qqbot
1.安装
1
|
pip install qqbot |
2.主动发出消息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
from qqbot import _bot as bot # 登录qq bot.login([ '-q' , '2816626661' ]) ''' buddy 获取指定名称/备注的好友 group 获取群 ''' buddy = bot. list ( 'buddy' , 'b.k' ) # 判断是佛存在这个好友 if buddy: b = buddy[ 0 ] # 发送消息 bot.sendto(b, 'nihao' ) |
3.根据事件回复消息
首先我们需要在命令行启动qq
1
2
3
|
c:\python3. 6.4 \virtual\env_qq\scripts>activate (env_qq) c:\python3. 6.4 \virtual\env_qq\scripts>qqbot - q 2816626661 |
接下来编写自动回复的脚本
1
2
3
4
5
6
7
8
|
from qqbot import _bot as bot def onqqmessage(bot, contact, member, content): if content = = '-hello' : bot.sendto(contact, '你好,我是qq机器人' ) elif content = = '-stop' : bot.sendto(contact, 'qq机器人已关闭' ) bot.stop() |
接下来将其放入 c:\用户/xxxx/.qqbot-tmp/plugins/文件夹下
保持之前的命令行窗口运行,再重新启动一个,执行
1
|
qq plug recall |
其中“recall”时刚才我们放进去的py文件名称
测试可行
参数说明:
bot : qqbot 对象,提供 list/sendto/stop/restart 等接口、
contact : qcontact 对象,消息的发送者,具有 ctype/qq/uin/nick/mark/card/name 等属性
member : qcontact 对象,仅当本消息为 群消息或讨论组消息 时有效,代表实际发消息的成员
content : str 对象,消息内容
4.结合图灵机器人
在这里注册一个图灵机器人账号http://www.tuling123.com/
重新编写刚才的脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
from qqbot import _bot as bot import requests import json def getreplay(message): url = 'http://openapi.tuling123.com/openapi/api/v2' data = { "perception" : { "inputtext" : { "text" : message }, }, "userinfo" : { "apikey" : "你的apikey" , "userid" : "你的uesrid" } } response = requests.post(url = url, json = data) return response.text def onqqmessage(bot, contact, member, content): if content = = '-hello' : bot.sendto(contact, '你好,我是qq机器人' ) else : response = getreplay(content) bot.sendto(contact, json.loads(response)[ 'results' ][ 0 ][ 'values' ][ 'text' ]) |
接下来重新加载一下就可以了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/C_Ronaldo_/article/details/82117904