QQ 聊天机器人小薇 2.0.0 发布 - 开源中国社区
Float_left Icon_close
QQ 聊天机器人小薇 2.0.0 发布
88250 2016年07月18日

QQ 聊天机器人小薇 2.0.0 发布

88250 88250 发布于2016年07月18日 收藏 107 评论 25

本次发布主要加入了支持讨论组聊天,并增强了稳定性。另外,官方小薇 QQ 机器人已经下线,大家要体验的话请 自建私服~

简介

XiaoV(小薇)是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动:

  • 监听多个 QQ 群消息,发现有“感兴趣”的内容时通过图灵机器人或百度机器人进行智能回复

  • 监听到的 QQ 群消息可以配置推送到论坛某个接口上,以实现论坛弹幕或者动态聚合效果,请看实例

  • 在论坛代码中调用小薇进行 QQ 消息推送,比如论坛有新帖时自动推送到 QQ 群

  • 加小薇为好友后可通过暗号(key)让她群推消息

总之,如果你需要一个连通 QQ 群和论坛的机器人,小薇是个不错的选择!

作者

小薇的爸爸叫 Daniel,妈妈叫 Vanessa,其他好心人可以在这里看到。

体验

体验之前一定要先仔细看完这个帖子:如何正确地使用小薇 QQ 机器人

  • 请自建私服进行体验

  • 在论坛的社群动态页面可看到由 QQ 群同步过来的消息

FAQ

如何正确地使用小薇 QQ 机器人?

论坛帖子传送门

为什么要单独做成一个 Web 服务,而不是一个依赖 jar?

做成依赖库的话会随应用部署,从开发的角度是比较方便,但有个致命的问题是应用一般是部署在云端,而登录扫码是在本地,这样会造成 QQ 的异地登录,导致很多问题。

所以需要将小薇部署在本地,保证用手机和小薇启动后 QQ 不出现异地登录。但是这也需要解决一个问题,即需要为小薇提供“内网穿透”的能力,比如使用 ngrok,具体可参考这里

为什么会出现“发送失败,Api返回码[1202]”?

这个问题是因为 QQ 服务器判断消息有问题时的返回,具体可关注这个 issue

目前已经使用“小薇的守护”进行了改进,大幅度提升了消息发送的成功率。

出现“Api返回码[103]”怎么破?

先关闭小薇,然后将小薇、小薇的守护两个账号依次分别登录 w.qq.com 后在设置中退出登录,最后再次启动小薇,这时扫码后应该就不会 103 了。

报错 Group list error [groupId=xxxx], please report this bug to developer… 怎么破?

同 103 错误处理步骤。

为什么输出日志是乱码?

是由于控制台编码造成,可以在将 src/main/resources/log4j.properties 中加入 log4j.appender.stdout.Encoding=UTF-8 来解决。

发现问题该怎么反馈?

启动

  1. 安装好 Java 1.7+、Maven 2+

  2. Clone 本项目,并在项目根目录上执行 mvn jetty:run

这样小薇就启动了,然后根据输出提示进行扫码登录,一共需要扫两次:

  • 第一次扫码是小薇登录

  • 第二次扫码是小薇的守护登录

小薇的守护只需要和小薇在同一个群就行(但不要用自己的,需要用一个不发消息的 QQ,不然消息监听会有问题)。

配置

配置文件主要是 src/main/resources/xiaov.properties:

  • turing.api & turing.key 定义了图灵机器人的 API 地址和口令

  • baidu.cookie 定义了百度机器人访问需要的 Cookie(登录百度,然后抓包)

  • qq.bot.type 定义了机器人类型,1 是使用图灵机器人,2 则使用百度机器人

  • qq.bot.name 定义了机器人的名字,这个主要是用于识别群消息是否“感兴趣”,比如对于群消息:“小薇,你吃过饭了吗?”包含了机器人的名字,机器人就对其进行处理

  • qq.bot.key 定义了管理 QQ 或论坛发过来的消息群推的口令,需要消息开头是这个口令,验证过后才会群推后面的消息内容

  • qq.bot.pushGroups 定义了群推的群名,用 , 分隔多个群;也可以配置成 * 推送所有群

  • qq.bot.ack 定义了是否启用消息送达确认机制(小薇的守护),默认不启用

    bot.follow.keywords 定义了监听群消息时的关键词,碰到这些词就做处理,比如对于群消息:“如何能在 3 天内精通 Java 呢?”包含了关键词 Java,机器人就对其进行处理
  • bot.follow.keywordAnswer 定义了监听群消息时出现了关键词后的回复模版

  • forum.api & forum.key 定义了论坛 API 地址和口令,小薇会将所有监听到的消息通过该 API 转发到论坛

API

  • 功能:小薇提供给论坛调用的 HTTP 接口,用于将论坛的内容推送到 QQ 群

  • URL:/qq

  • Method:POST

  • Body:key={qq.bot.key}&msg={msgcontent}

QQ 群推送论坛

  • 功能:由论坛提供给小薇调用的 HTTP 接口,用于将 QQ 群消息推送到论坛(这个接口是论坛实现的,这里是给出小薇的调用方式和参数)

  • URL:{forum.api}

  • Method:POST

  • Body:key={forum.key}&msg={msgcontent}&user={hexuserid}

鸣谢

小薇的诞生离不开以下开源项目/产品服务:


PS:附送一批黑客派论坛注册邀请码:

XYAkBM4DweKCbvvg
xsFDlaomf2fJhaTA
spTg8t7EXn7IEar0
hmW0XO9NCQxbUV6x
sTg5mL765N0opuWj
OOKWTAve3cwQNt9k
YZOGMPp37Br57QBv
BhvUIQI3sBuwtdBV
YF6BTnVG6sELASl4
GI8xRXfksdijdNTq
pWfFuv5pMNNs8txj
YfRujj58780IefrV
Ia97uAHBLIRLjT5H
aKrjmKMy7KFI5ysg
eIfthzHMhrRdi2Lq
wDFgQoIzW3774dHH
SWFt3FoqxxXZ4RcD
mJ3zkdNyatnzqCaM
Dc3YxT7Cebqn3fBQ
ndlRQp9iAAUssKV0

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:QQ 聊天机器人小薇 2.0.0 发布
分享
评论(25)
最新评论
0

引用来自“playfire”的评论

[ERROR]-[2016-07-27 11:23:06]-[com.scienjus.smartqq.client.SmartQQClient:72]: 请求失败,Http返回码[404]
[ERROR]-[2016-07-27 11:23:26]-[com.scienjus.smartqq.client.SmartQQClient:72]: java.net.SocketTimeoutException: Read timed out
这个应该不影响使用,偶尔会出现。
0
[ERROR]-[2016-07-27 11:23:06]-[com.scienjus.smartqq.client.SmartQQClient:72]: 请求失败,Http返回码[404]
[ERROR]-[2016-07-27 11:23:26]-[com.scienjus.smartqq.client.SmartQQClient:72]: java.net.SocketTimeoutException: Read timed out
0

引用来自“首席撸出血”的评论

好得,但是今天估计不行
你有空的时候帮忙一下就好,先谢啦!
0
好得,但是今天估计不行
0

引用来自“首席撸出血”的评论

看来1202的问题的解决只是通过一个守护的QQ来监听,做补偿机制


不好意思,后来一直在忙,就没做这个机器人的维护

还有一点就是百度机器人还得看得,那个需要cookie里的一些参数,而且需要用户之前领养过百度机器人!

一起加到文档里面把
帮忙编辑 Wiki 吧 :-p
0
看来1202的问题的解决只是通过一个守护的QQ来监听,做补偿机制


不好意思,后来一直在忙,就没做这个机器人的维护

还有一点就是百度机器人还得看得,那个需要cookie里的一些参数,而且需要用户之前领养过百度机器人!

一起加到文档里面把
0

引用来自“wxhui”的评论

激活码都用了,请求在发一批
pd6Wh2hvPpwICp00
K9Xl96QPYqXSElVD
SR3j1WfJzUz5Dw0p
Bv3jfj9L0hX9mJsa
ryI6yvrvYPwYU3Wx
syZwzV6GL90A0yZu
I3JbLGFaRpdhgQul
24YvTSziKmsMfTYz
i29jSIuTCdymbEuM
kJu2OkE9f4rQ7Emh

0
激活码都用了,请求在发一批
0

引用来自“南湖船老大”的评论

文档写的不直接。
有空帮忙斧正一下吧
0

引用来自“liuqiangchengdu”的评论

这么快都2.0了
嗯,谢谢关注
0

引用来自“714593351”的评论

支持D大
谢谢
0
支持D大
0
这么快都2.0了
0
文档写的不直接。
0
留名
0
为什么不叫“小芳” ?
0
之前打算自己做个,看样子不用了,谢谢.
0

引用来自“申法宽”的评论

Pg7irgbUweHxxs1u
欢迎欢迎
0
Pg7irgbUweHxxs1u
0
程序员的浪漫
顶部