本文实例为大家分享了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