QQ 聊天机器人小薇 2.0.0 发布

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

本次发布主要加入了支持讨论组聊天,并增强了稳定性。另外,官方小薇 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

88250
88250

引用来自“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
这个应该不影响使用,偶尔会出现。
playfire
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
88250
88250

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

好得,但是今天估计不行
你有空的时候帮忙一下就好,先谢啦!
首席撸出血
首席撸出血
好得,但是今天估计不行
88250
88250

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

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


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

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

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


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

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

一起加到文档里面把
88250
88250

引用来自“wxhui”的评论

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

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

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

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

引用来自“liuqiangchengdu”的评论

这么快都2.0了
嗯,谢谢关注
返回顶部
顶部