All Projects → b3log → Xiaov

b3log / Xiaov

Licence: apache-2.0
👰 一个 QQ 聊天机器人,她的名字叫做小薇~

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Xiaov

Spring Cq
新框架 https://github.com/ProtobufBot/ProtobufBot 。这是一个spring boot starter。基于SpringBoot的QQ机器人框架,demo分支是例子,jar分支是框架。
Stars: ✭ 161 (-89.02%)
Mutual labels:  bot, qq
Miraiandroid
QQ机器人 /(实验性)在Android上运行Mirai-console,支持插件
Stars: ✭ 188 (-87.18%)
Mutual labels:  bot, qq
Python Mirai
以 OICQ(QQ) 协议驱动的高性能机器人开发框架 Mirai 的 Python 接口, 通过其提供的 `HTTP API` 与无头客户端(Mirai)交互.
Stars: ✭ 155 (-89.43%)
Mutual labels:  bot, qq
Mojo Webqq
【重要通知:WebQQ将在2019年1月1日停止服务,此项目目前已停止维护,感谢大家四年来的一路陪伴】使用Perl语言(不会没关系)编写的smartqq/webqq客户端框架(非GUI),可通过插件提供基于HTTP协议的api接口供其他语言或系统调用
Stars: ✭ 1,755 (+19.71%)
Mutual labels:  bot, qq
Projhyperai
一个包含了机器人框架/插件化可运行程序/IM适配器的项目集合.
Stars: ✭ 42 (-97.14%)
Mutual labels:  bot, qq
Picqbotx
基于 CQHTTP 插件的 Java QQ 机器人类库
Stars: ✭ 218 (-85.13%)
Mutual labels:  bot, qq
Aiocqhttp
A Python SDK with async I/O for CQHTTP.
Stars: ✭ 162 (-88.95%)
Mutual labels:  bot, qq
Ichunqiu qqbot
i春秋社区机器人自2018年02月04日开始服务于i春秋社区,每日文章推送、文章查询、魔法币查询、作者信息查询、作家团奖金余额查询、奖金排行榜、i春秋课程查询等一列功能。据不完全统计,使用人数已经超过3.5万,使用次数达到20万,最大覆盖700+个群。
Stars: ✭ 79 (-94.61%)
Mutual labels:  bot, qq
Vim Chat
💜 Chatting plugin for neovim and vim8
Stars: ✭ 475 (-67.6%)
Mutual labels:  bot, qq
Nonebot2
跨平台Python异步机器人框架
Stars: ✭ 344 (-76.53%)
Mutual labels:  bot, qq
Nonebot
基于 OneBot 标准的 Python 异步 QQ 机器人框架
Stars: ✭ 1,207 (-17.67%)
Mutual labels:  bot, qq
Mirai Ts
🔧 Mirai(QQ Bot) JavaScript/TypeScript SDK for Node.js/Browser
Stars: ✭ 86 (-94.13%)
Mutual labels:  bot, qq
Wechaty
Conversational RPA SDK for Chatbot Makers
Stars: ✭ 11,647 (+694.47%)
Mutual labels:  qq
Botonomous
A PHP Framework For Creating Autonomous Slack Bots
Stars: ✭ 109 (-92.56%)
Mutual labels:  bot
Lykos
Werewolf, the popular detective/social party game (a theme of Mafia)
Stars: ✭ 107 (-92.7%)
Mutual labels:  bot
Imguralbumbot
A reddit bot for linking direct images of single-picture albums
Stars: ✭ 107 (-92.7%)
Mutual labels:  bot
Whatsapp Api
Rest API to send messages through whatsapp
Stars: ✭ 112 (-92.36%)
Mutual labels:  bot
Monitorizer
Multithreaded monitoring framework to detect and report newly found subdomains on a specific target using various scanning tools with support for Acunetix
Stars: ✭ 110 (-92.5%)
Mutual labels:  bot
Awesome Telegram Bot
Manual picked bot of Telegram.
Stars: ✭ 107 (-92.7%)
Mutual labels:  bot
Black out
🐍🌚🤖 GitHub bot that formats code with `black`
Stars: ✭ 107 (-92.7%)
Mutual labels:  bot

由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

XiaoV Build Status

简介

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

  • 监听多个 QQ 群消息,发现有“感兴趣”的内容时通过图灵|百度|茉莉机器人进行智能回复
  • 监听到的 QQ 群消息可以配置推送到其他系统接口上
  • 其他系统调用小薇进行 QQ 消息推送,比如论坛有新帖时自动推送到 QQ 群
  • 加小薇为好友后可通过暗号(key)让她群推消息

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

启动

  1. 安装好 JDK1.8、Maven 3
  2. Clone 本项目,并在项目根目录上执行 mvn install
  3. 执行 mvn jetty:run

这样小薇就启动了,然后根据输出提示进行扫码登录。

另外,如果你一定要在服务器上启动小薇(但真心不建议,请参考 FAQ 第二条):

  1. 打 war 包部署自己的容器,需要修改 latke.props 中的 serverHost 为你服务器的公网 IP、serverPort 为你容器监听的端口,如果你用了反向代理,那么 serverHost 可能就是你绑定的域名、serverPort 是 80。简而言之,这两个值是你最终访问接口时候的值
  2. 通过 /login 地址来访问二维码

配置

配置文件主要是 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.pushGroupUserCnt 定义了群推时群人数的下限,只有大于等于这个人数的群才推送
  • bot.follow.keywords 定义了监听群消息时的关键词,碰到这些词就做处理,比如对于群消息:“如何能在 3 天内精通 Java 呢?”包含了关键词 Java,机器人就对其进行处理
  • bot.follow.keywordAnswer 定义了监听群消息时出现了关键词后的回复模版
  • third.api & third.key 定义了其他系统 API 地址和口令,小薇会将所有监听到的消息通过该 API 推送到这个系统

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 来解决。

发现问题该怎么反馈?

API

其他系统推送 QQ 群

  • 功能:小薇提供给其他系统调用的 HTTP 接口,用于将其他系统的内容推送到 QQ 群
  • URL:/qq
  • Method:POST
  • Body:key={qq.bot.key}&msg={msgcontent}
  • 例如:/qq?key=123456&msg=Hello

QQ 群推送其他系统

  • 功能:由其他系统提供给小薇调用的 HTTP 接口,用于将 QQ 群消息推送到这个系统(这个接口所需系统是实现的,这里是给出小薇的调用方式和参数)
  • URL:{third.api}
  • Method:POST
  • Body:key={third.key}&msg={msgcontent}&user={hexuserid}
  • 例如:/xiaov?key=123456&msg=Hello&user=0a

鸣谢

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].