Skip to content
forked from xhan/qqbot

🔥 SmartQQ Robot and API Server, powered by node.js

License

Notifications You must be signed in to change notification settings

floatinghotpot/qqbot

This branch is 34 commits ahead of, 1 commit behind xhan/qqbot:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Liming Xie
Mar 3, 2017
1ca01cf · Mar 3, 2017
Dec 31, 2015
Feb 17, 2017
Oct 30, 2015
Dec 29, 2013
Feb 17, 2017
Dec 31, 2015
Dec 28, 2013
Jan 11, 2016
Oct 30, 2015
Nov 3, 2015
Dec 18, 2015
Mar 3, 2017
Jun 9, 2014
Jan 11, 2016
Nov 3, 2015

Repository files navigation

SmartQQ-Bot

SmartQQ-Bot powered by node.js

FYI: QQ is a instant messaging service widely used in china provided by Tencent. SmartQQ is the web implmentation.

基于 WebQQ 的机器人。原项目是 Xu Han 用 CoffeeScript 开发,这是一个很棒的项目。Raymond Xie 主要增加了对 二维码扫描认证登陆的支持。这个版本全部代码转换为 javascript,并且发布为 npm 包,无需配置,安装即可使用,更加方便。

SmartQQ-Bot

Features

  • 手机QQ二维码扫描登录,貌似这是目前 WebQQ 唯一允许的登录方式
  • 支持好友,群,讨论组的接入
  • 插件化,目前支持消息的派发
  • 提供HTTP API支持(比如群通知什么的都能做哦)
  • 除了 qqbot,还附带了一个命令行的 qq 来连接 qqbot,可以用来显示好友、群组列表,发送消息等操作
  • 通过对 poll 信息的分析,自动重新登录,提高了稳定性
  • 移除了扫描二维码之后的键盘输入,改为自动轮询二维码扫描结果
  • nohup qqbot &, 使 qqbot 在后台运行,stdout 结果重定向到 nohup.out

你可以用TA来

经典案例:

  • 持续集成自动通知 (这是软件项目开发必备的,也是我使用并改进 qqbot 最初的原因 --- Raymond)
  • 用来集成团队协作系统的消息推送(有QQ消息推送的看板系统,是真的即时沟通 --- Raymond)

其它可能的用途:

  • 监控报警机器人(监控报警啊什么的,对于天天做电脑前,报警还得通过邮件短信提醒多不直接呢)
  • 辅助管理群成员,比如自动清理刷屏用户啊(请自己实现)
  • 聊天机器人(请自己实现AI)
  • 部署机器人(请了解hubot的概念)

Installation

$ [sudo] npm install -g smartqq-bot

Usage as Standalone Robot

$ qqbot
  • 执行 qqbot 启动 SmartQQ-Bot,会从QQ服务器请求二维码图片。 ** 如果是 Mac 系统,会打开图片文件,进行扫描。 ** 如果是其他系统的话,则会启动一个 http服务器,请用浏览器访问 http://本机IP:3100/ 显示二维码,进行扫描。

  • 用手机QQ扫描二维码,并选择允许 smartQQ 登录

  • qqbot 自动检测二维码扫描结果,进入运行状态

  • 接下来,可以用其他的程序访问 qqbot 的 apiserver,调用 SmartQQ-Bot 的功能,协议为: http://localhost:3200/send?type=[group|buddy|discuss]&to=[qqnumber/nick/gname]&msg=[msg]

  • 或者,用附带的命令行的 qq,访问启动后 qqbot,可以用来显示好友、群组列表,发送消息等操作

$ qq list buddy
$ qq list group
$ qq send buddy {qq_number/nick} {msg}
$ qq send group {group_number/gname} {msg}
$ qq quit

qq 命令行也可以向在其他主机上启动的 qqbot 发请求,只需指定 ip 及可选端口 -h host -p port, host 默认是 localhost, port 默认是 3200.

qqbot 也可以在后台运行,启动命令为:

nohup qqbot &

此时 stdout 的输出重定向到文件 nohup.out,不在屏幕显示。

参考资料

  • CHANGELOG.md
  • WebQQ协议
  • 访问 http://w.qq.com/ ,事实上,了解 WebQQ 协议更直接的方式,是通过 Chrome 打开“审查元素”模式,观察和服务器之间的网络交互

TODO

  • 用户信息,qq号等
  • 机器人响应前缀
  • 图片发送支持

Credits

  • QQBot 主要由 xhan 从 2013年12月开始,陆陆续续实现绝大部分功能。
  • Raymond Xie 于 2015年10月 增加了 手机QQ二维码扫描认证登陆。

About

🔥 SmartQQ Robot and API Server, powered by node.js

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%