Python QQBot库的QQ聊天机器人

论坛 期权论坛 期权     
Python学习交流   2019-6-30 19:02   2282   0
本文实例为大家分享了Python QQBot库的QQ聊天机器人的具体代码,供大家参考,具体内容如下
项目地址:https://github.com/pandolia/qqbot
1.安装
  1. pip install qqbot
复制代码
2.主动发出消息
  1. '''
复制代码
  1. 遇到不懂的问题?Python学习交流群:1004391443满足你的需求,资料都已经上传群文件,可以自行下载!
复制代码
  1. '''
复制代码
  1. from qqbot import _bot as bot
复制代码
复制代码
  1. # 登录QQ
复制代码
  1. bot.Login(['-q', '2816626661'])
复制代码
复制代码
  1. '''
复制代码
  1. buddy 获取指定名称/备注的好友
复制代码
  1. group 获取群
复制代码
  1. '''
复制代码
  1. buddy = bot.List('buddy', 'b.K')
复制代码
复制代码
  1. # 判断是佛存在这个好友
复制代码
  1. if buddy:
复制代码
  1. b = buddy[0]
复制代码
  1. # 发送消息
复制代码
  1. bot.SendTo(b, 'nihao')
复制代码
3.根据事件回复消息
首先我们需要在命令行启动qq
  1. c:\Python3.
复制代码
  1. 6.4
复制代码
  1. \virtual\env_qq\Scripts>activate
复制代码
  1. (env_qq) c:\Python3.
复制代码
  1. 6.4
复制代码
  1. \virtual\env_qq\Scripts>qqbot
复制代码
  1. -
复制代码
  1. q
复制代码
  1. 2816626661
复制代码


接下来编写自动回复的脚本
  1. from qqbot import _bot as bot
复制代码
复制代码
  1. def onQQMessage(bot, contact, member, content):
复制代码
  1. if content == '-hello':
复制代码
  1.   bot.SendTo(contact, '你好,我是QQ机器人')
复制代码
  1. elif content == '-stop':
复制代码
  1.   bot.SendTo(contact, 'QQ机器人已关闭')
复制代码
  1.   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. from qqbot import _bot as bot
复制代码
  1. import requests
复制代码
  1. import json
复制代码
复制代码
  1. def getReplay(message):
复制代码
  1. url = 'http://openapi.tuling123.com/openapi/api/v2'
复制代码
  1. data = {
复制代码
  1.   "perception": {
复制代码
  1.    "inputText": {
复制代码
  1.     "text": message
复制代码
  1.    },
复制代码
  1.   },
复制代码
  1.   "userInfo": {
复制代码
  1.    "apiKey": "你的APIkey",
复制代码
  1.    "userId": "你的uesrID"
复制代码
  1.   }
复制代码
  1. }
复制代码
  1. response = requests.post(url=url, json=data)
复制代码
  1. return response.text
复制代码
复制代码
复制代码
  1. def onQQMessage(bot, contact, member, content):
复制代码
  1. if content == '-hello':
复制代码
  1.   bot.SendTo(contact, '你好,我是QQ机器人')
复制代码
  1. else:
复制代码
  1.   response = getReplay(content)
复制代码
  1.   bot.SendTo(contact, json.loads(response)['results'][0]['values']['text'])
复制代码
接下来重新加载一下就可以了。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:10
帖子:2
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP