Coder Social home page Coder Social logo

qqbot's Introduction

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二维码扫描认证登陆。

qqbot's People

Contributors

xhan avatar floatinghotpot avatar mk124 avatar asakurafuuko avatar kinosang avatar hs3180 avatar flyingnn avatar guodong000 avatar icyleaf avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.