Python QQBot库的QQ聊天机器人

作者:偷亲 时间:2022-03-18 23:29:30 

本文实例为大家分享了Python QQBot库的QQ聊天机器人的具体代码,供大家参考,具体内容如下

项目地址:https://github.com/pandolia/qqbot

1.安装


pip install qqbot

2.主动发出消息


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


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聊天机器人

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


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聊天机器人

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


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/

重新编写刚才的脚本


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

标签:python,QQBot,机器人
0
投稿

猜你喜欢

  • 浏览器 cookie 限制

    2008-05-23 13:09:00
  • Oracle 查看表空间的大小及使用情况sql语句

    2023-07-14 20:06:31
  • 网页设计详细教程之XML简便省力技巧五则

    2008-05-23 14:37:00
  • 百度、谷歌和雅虎的近日LOGO

    2008-05-19 12:11:00
  • 在JavaScript中,为什么要尽可能使用局部变量?

    2009-03-01 12:38:00
  • 用js实现用户输入密码的强度

    2007-11-22 21:41:00
  • JS页内查找关键词的高亮显示

    2013-07-18 21:13:54
  • Python中JSON的使用方法(超详细)

    2023-11-15 23:04:19
  • JS+HTML5 canvas绘制验证码示例

    2023-07-19 11:23:53
  • PHP安全的URL字符串base64编码和解码

    2023-09-06 22:04:45
  • MySQL与PHP的基础与应用专题之创建数据库表

    2023-11-21 04:12:28
  • 升级SQL Server 2008数据库引擎

    2009-03-25 12:58:00
  • python安装sklearn模块的方法详解

    2023-08-01 17:23:48
  • 如何判断URL格式是否符合规范?

    2010-01-12 20:14:00
  • js substr、substring和slice使用说明小记

    2023-07-15 16:26:03
  • HTML,CSS和JavaScript速查表

    2010-09-16 13:02:00
  • 国外404错误页面的创意设计欣赏

    2007-08-19 15:44:00
  • Python 查看list中是否含有某元素的方法

    2023-07-29 21:46:08
  • 带农历的JavaScript日期时间js代码

    2010-08-01 10:29:00
  • 关于Ajax在浏览器中产生前进后退的实现方法

    2010-01-29 13:01:00
  • asp之家 网络编程 m.aspxhome.com