Python QQBot库的QQ聊天机器人

时间:2021-11-25 03:44:57

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

Python QQBot库的QQ聊天机器人

接下来编写自动回复的脚本

?
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/文件夹下

Python QQBot库的QQ聊天机器人

保持之前的命令行窗口运行,再重新启动一个,执行

?
1
qq plug recall

其中“recall”时刚才我们放进去的py文件名称

Python QQBot库的QQ聊天机器人

测试可行

Python QQBot库的QQ聊天机器人

参数说明:

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