Mojo-Webqq v2.2.7 [](https://travis-ci.org/sjdy521/Mojo-Webqq) [](https://gitter.im/sjdy521/Mojo-Webqq?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [](API.md) [](http://jq.qq.com/?_wv=1027&k=kjVJzo) [](http://irc.perfi.wang/?channel=#Mojo-Webqq) ======================== ### !!!é‡è¦é€šçŸ¥ï¼šWebQQ将在2019å¹´1月1æ—¥åœæ¢æœåŠ¡ï¼Œé¡¹ç›®ç›®å‰å·²åœæ¢ç»´æŠ¤ï¼Œæ„Ÿè°¢å¤§å®¶å››å¹´æ¥ä¸€è·¯é™ªä¼´ 使用Perlè¯è¨€ç¼–写的Smartqq客户端框架,基于Mojolicious,è¦æ±‚Perl版本5.10+,å¯é€šè¿‡æ’件æ供基于HTTPå议的api接å£ä¾›å…¶ä»–è¯è¨€æˆ–系统调用 ### 郑é‡å£°æ˜Ž 本项目完全éµå¾ªQQ官方æ供的原始功能,ä¸åŒ…å«ä»»ä½•ç ´åã€ç›—å·ç‰è¡Œä¸ºï¼Œæœ¬é¡¹ç›®å®Œå…¨å¼€æºï¼Œç›®çš„是为了促进技术交æµå¦ä¹ ,ç¦æ¢ä»»ä½•å¯¹å›½å®¶ã€ä¼ä¸šã€ä¸ªäººç‰æž„æˆå±å®³çš„éžæ³•ç”¨é€”,å¦åˆ™åŽæžœè‡ªè´Ÿ ### 特色功能 * æ”¯æŒ è´¦å·å¯†ç 登录(å¯èƒ½å·²å¤±æ•ˆï¼‰ï¼ŒäºŒç»´ç 扫ç 登录 * æ”¯æŒ ç¾¤ç»„è¸¢äººã€ç¦è¨€ã€è®¾ç½®/å–消管ç†å‘˜ã€ä¿®æ”¹ç¾¤æˆå‘˜å片ã€é‚€è¯·å¥½å‹å…¥ç¾¤ã€ç¾¤ç¾åˆ°ï¼ˆå¯èƒ½å¤±æ•ˆï¼‰ * æ”¯æŒ èŽ·å–好å‹ã€ç¾¤ç»„ã€ç¾¤æˆå‘˜çš„真实QQå·ç (å¯èƒ½å¤±æ•ˆï¼‰ * æ”¯æŒ æ–°å¢ž/失去好å‹ã€æ–°å¢ž/退出群组ã€æ–°å¢ž/失去群æˆå‘˜ ç‰äº‹ä»¶æ醒(éžå®žæ—¶ï¼‰ * æ”¯æŒ Windows/Linux/Mac 多平å°ï¼Œæ”¯æŒdockeré•œåƒï¼Œæ˜“安装部署,ä¸æ‡‚Perl也能用 * æä¾› 基于HTTPå议的APIæŽ¥å£ ï¼Œç®€æ´ä¸°å¯Œï¼Œæ–¹ä¾¿å’Œå…¶ä»–编程è¯è¨€é›†æˆ * 一个产å“ç»ç†çš„倾情之作,代ç ç”±å†…è€Œå¤–éƒ½æ›´åŠ æ³¨é‡â€œç”¨æˆ·ä½“验â€ï¼Œå¤–åŠ ä¸»äººäººå“æžå¥½ï¼Œä½ 会懂的 ### æ’件列表 |å称 | 优先级 |当å‰çŠ¶æ€ |github作者 | 功能说明 |:-------------------|:--------|:-----------|:-------------|:---------------------------- |[ShowMsg](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::ShowMsg) |100 |å·²å‘布 |sjdy521 |打å°å®¢æˆ·ç«¯æŽ¥æ”¶å’Œå‘é€çš„æ¶ˆæ¯ |[GroupManage](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::GroupManage) |100 |å·²å‘布 |sjdy521 |群管ç†ï¼Œå…¥ç¾¤æ¬¢è¿Žã€é™åˆ¶å‘å›¾é¢‘çŽ‡ç‰ |[IRCShell](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::IRCShell) |99 |å·²å‘布 |sjdy521 |Linux环境下通过irc客户端使用qq |[Openqq](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::Openqq) |98 |å·²å‘布 |sjdy521 |æä¾›qqå‘é€æ¶ˆæ¯apiæŽ¥å£ |[Perlcode](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::Perlcode) |97 |å·²å‘布 |sjdy521 |通过qq消æ¯æ‰§è¡Œperl代ç |[Perldoc](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::Perldoc) |96 |å·²å‘布 |sjdy521 |通过qq消æ¯æŸ¥è¯¢perl文档 |[Translation](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::Translation)     |93    |å·²å‘布| sjdy521 | 多国è¯è¨€ç¿»è¯‘功能 |[KnowledgeBase](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::KnowledgeBase) |3 |å·²å‘布 |sjdy521 |自定义å¯ç¼–辑问ç”知识库 |[Qiandao](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::Qiandao) |1 |å·²å‘布 |sjdy521 |QQ群æ¯æ—¥ç¾åˆ° |[PostQRcode](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::PostQRcode) |0 |å·²å‘布 |sjdy521 |登录二维ç å‘é€åˆ°é‚®ç®±å®žçŽ°è¿œç¨‹æ‰«ç |[UploadQRcode](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::UploadQRcode) |0 |å·²å‘布 |sjdy521 |二维ç ä¸Šä¼ å›¾åºŠèŽ·å¾—å…¬ç½‘è®¿é—®url |[ShowQRcode](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::ShowQRcode) |0 |å·²å‘布 |autodataming |调用系统图片查看程åºæ¥ç¤ºäºŒç»´ç (目å‰ä»…支æŒwin) |[SmartReply](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::SmartReply)     |0    |å·²å‘布   |sjdy521    |智能èŠå¤©å›žå¤ 更多æ’件å‚考[完整æ’件列表](Plugin.md) ### 效果展示 敲一行命令就能å¯åŠ¨ä¸€ä¸ªæ™ºèƒ½èŠå¤©æœºå™¨äººï¼ŒPerl å’Œä½ éƒ½å¦‚æ¤ä¼˜é›…. Enjoy! cpanm Mojo::Webqq && perl -MMojo::Webqq -e "Mojo::Webqq->new->load('ShowMsg')->load('SmartReply')->run()" ``` [15/09/30 15:11:59] [info] åˆå§‹åŒ– smartqq 客户端å‚æ•°... [15/09/30 15:11:59] [info] 检查验è¯ç ... [15/09/30 15:11:59] [info] 检查结果: 很幸è¿ï¼Œæœ¬æ¬¡ç™»å½•ä¸éœ€è¦éªŒè¯ç [15/09/30 15:11:59] [info] æ£åœ¨èŽ·å–登录二维ç ... [15/09/30 15:11:59] [info] 二维ç 已下载到本地[ /tmp/mojo_webqq_qrcode_xxx.png ] [15/09/30 15:12:00] [info] 登录二维ç å·²ç»å‘é€åˆ°é‚®ç®±: ****** [15/09/30 15:12:00] [info] ç‰å¾…手机QQ扫æ二维ç ... [15/09/30 15:12:43] [info] 手机QQ扫ç æˆåŠŸï¼Œè¯·åœ¨æ‰‹æœºä¸Šç‚¹å‡»[å…许登录smartQQ]按钮... [15/09/30 15:12:46] [info] 检查安全代ç ... [15/09/30 15:12:47] [info] 设置登录验è¯å‚æ•°... [15/09/30 15:12:47] [info] å°è¯•è¿›è¡Œç™»å½•(2)... [15/09/30 15:12:47] [info] 登录æˆåŠŸ [15/09/30 15:12:47] [info] 更新个人信æ¯... [15/09/30 15:12:47] [info] 更新好å‹ä¿¡æ¯... [15/09/30 15:12:47] [info] æ›´æ–°[ PERLå¦ä¹ äº¤æµ ]ä¿¡æ¯ [15/09/30 15:12:52] [info] æ›´æ–°[ Mojolicious ]ä¿¡æ¯ [15/09/30 15:12:55] [info] 开始接收消æ¯... [15/09/30 14:09:20] [群消æ¯] å°ç°|PERLå¦ä¹ äº¤æµ : Mojo::Webqqä¸é”™å“¦ [15/09/30 14:10:20] [群消æ¯] 我->PERLå¦ä¹ äº¤æµ : 多谢多谢 ``` #### 通过irc客户端在linux终端上使用QQ ``` +-------------------+ +----------------+ | Tencent | | Any IRC Client | | SmartQQ Server | | wechatã€irssi | +---v-------------^-+ +-v------------^-+ | | | | | QQå议交互 | |IRCå议交互 | +-- --- |-- - - -- | - - - -- - - --- | --- ----- | --+ | +---v-------------^--+ +----v------------^-+ | | | <——————————————————< | | | | SmartQQ Client | QQ - IRC | IRC Server | | | | | åè®®è½¬æ¢ | 监å¬æœ¬æœº6667ç«¯å£ | | | | >——————————————————> | | | +--------------------+ +-------------------+ | | | | 我们程åºå®žçŽ°çš„部分 | +--- - - - - -- - -- ---- ------ ------- ------ --- ----+ ```  #### IT男装逼利器:如何åƒé»‘å®¢ä¸€æ ·èŠå¤©ï¼ˆå›¾ç‰‡æ¥è‡ª @動感光波)  #### 更多应用效果 请å‚è§[Mojo-Webqq作å“展](Collection.md) ### 安装方法 推è使用[cpanm](https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm)在线安装或å‡çº§[Mojo::Webqq](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod)模å—, 如果使用dockeræ–¹å¼è¯·å‚è§[Dockeré•œåƒå®‰è£…åŠä½¿ç”¨æ–¹æ³•](Docker.md) 1. *安装perl* 安装之å‰è¯·å…ˆç¡®è®¤ä¸‹ä½ 的系统是å¦å·²ç»å®‰è£…了Perlï¼Œå› ä¸ºé™¤äº†windows,其他大部分的平å°é»˜è®¤éƒ½å¯èƒ½å·²ç»é¢„装过 å¹¶ä¸”ä½ çš„Perl版本至少5.10.1+,推è5.14+ [Perl官网下载页é¢](https://www.perl.org/get.html) 有包å«Unix/Linuxã€Mac OS Xã€Windows多平å°æ¯”较全é¢è¯¦ç»†çš„安装说明 建议大家尽é‡é€‰æ‹©**Binaries**(二进制预编译)的版本,安装å³å¯ä½¿ç”¨ï¼Œæ¯”较方便 |å¹³å° |推è选择 |ä¸‹è½½åœ°å€ | |:-------|:--------------------|:--------------------------| |Windows |1. **StrawberryPerl**<br>2. ActivePerl<br>3. **Mojo-StrawberryPerl**|[StrawberryPerl下载地å€](http://strawberryperl.com/)<br>[Mojo-StrawberryPerl下载地å€](https://github.com/sjdy521/Mojo-StrawberryPerl)<br>[ActivePerl下载地å€](http://www.activestate.com/activeperl/downloads)<br>| |Linux  |1. **系统自带**<br>2. **yum/aptç‰åŒ…管ç†å™¨**<br>3. 官方æºç 编译<br>4. ActivePerl<br>5. DWIM-Perl|[ActivePerl下载地å€](http://www.activestate.com/activeperl/downloads)<br>[DWIM-Perl下载地å€](http://dwimperl.com/linux.html)| |Mac |1. **系统自带**<br>2. ActivePerl|[ActivePerl下载地å€](http://www.activestate.com/activeperl/downloads)| 注æ„: [Mojo-StrawberryPerl](https://github.com/sjdy521/Mojo-StrawberryPerl)是基于StrawberryPerl精简打包而æˆï¼Œé€‚用于windows 32ä½/64ä½ç³»ç»Ÿ 2. *安装cpanm包管ç†å·¥å…·*(如果系统已ç»å®‰è£…了cpanmå¯ä»¥å¿½ç•¥æ¤æ¥éª¤ï¼‰ 方法a: 通过cpan安装cpanm $ cpan -i App::cpanminus 方法b: 直接在线安装cpanm $ curl -kL https://cpanmin.us | perl - App::cpanminus 官方æœåŠ¡å™¨åœ¨å›½å¤–ï¼Œå¦‚æžœæ— æ³•è®¿é—®ï¼Œå¯ä»¥é€‰æ‹©ä¸‹é¢çš„命令: $ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus 3. *使用cpanm在线安装 Mojo::Webqq 模å—*(如果系统已ç»å®‰è£…了该模å—,执行æ¤æ¥éª¤ä¼šå¯¹æ¨¡å—进行å‡çº§ï¼‰ $ cpanm Mojo::Webqq 如果安装过程ä¸ä¸€ç›´æ示下载失败,很å¯èƒ½æ˜¯å› 为访问到国外æœåŠ¡å™¨ç½‘络比较差 è¿™ç§æƒ…况下å¯ä»¥å°è¯•æŒ‰å¦‚下方å¼æ‰‹åŠ¨æŒ‡å®šå›½å†…çš„é•œåƒç«™ç‚¹ $ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Webqq 4. *安装失败å¯èƒ½æœ‰å¸®åŠ©çš„解决方法* å¦‚æžœä½ è¿æ°”ä¸ä½³ï¼Œé€šè¿‡cpanm没有一次性安装æˆåŠŸï¼Œè¿™é‡Œæ供了一些å¯èƒ½æœ‰ç”¨çš„ä¿¡æ¯ åœ¨å®‰è£… Mojo::Webqq 的过程ä¸ï¼Œcpan或者cpanm会帮助我们自动安装很多其他的ä¾èµ–æ¨¡å— åœ¨ä¼—å¤šçš„ä¾èµ–模å—ä¸ï¼Œå®‰è£…ç»å¸¸å®¹æ˜“出现问题的主è¦æ˜¯ IO::Socket::SSL IO::Socket::SSL 主è¦æ供了 https 支æŒï¼Œåœ¨å®‰è£…过程ä¸å¯èƒ½ä¼šæ¶‰åŠåˆ°SSL相关库的编译 对于 Linux 用户,通常采用的是编译安装的方å¼ï¼Œç³»ç»Ÿç¼ºå°‘编译安装必è¦çš„环境,则会导致编译失败 对于 Windows 用户,由于ä¸å…·å¤‡è‰¯å¥½çš„编译安装环境,推è采用一些已ç»æ‰“包比较全é¢çš„Perlè¿è¡ŒçŽ¯å¢ƒ 例如比较æµè¡Œçš„ strawberryperl 或者 activeperl çš„æœ€æ–°ç‰ˆæœ¬éƒ½é»˜è®¤åŒ…å« Mojo::Webqq çš„æ ¸å¿ƒä¾èµ–æ¨¡å— RedHat/Centos: $ yum install -y openssl-devel Ubuntu: $ sudo apt-get install libssl-dev æžå®šäº†ç¼–译和è¿è¡ŒçŽ¯å¢ƒä¹‹åŽï¼Œå†é‡æ–°å›žåˆ° æ¥éª¤2 安装Mojo::Webqqå³å¯ 请尽é‡åœ¨root下安装使用,éžroot下安装使用å‚考[FAQ](https://github.com/sjdy521/Mojo-Webqq/blob/master/FAQ.md#11-%E9%9D%9Eroot%E8%B4%A6%E5%8F%B7%E5%AE%89%E8%A3%85%E5%90%8E%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98) 如果ä»ç„¶æœ‰é—®é¢˜ï¼ŒLinux上å¯ä»¥å°è¯•æ‰§è¡Œå¦‚下脚本进行ä¾èµ–模å—检查 $ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Webqq/master/script/check_dependencies.pl"|perl - ### 如何使用 1. *我对Perl很熟悉,是一个专业的Perler* 该项目是一个纯粹的Perl模å—,已ç»å‘布到了cpan上,请仔细阅读 `Mojo::Weqq` 模å—çš„[使用文档](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod) 除æ¤ä¹‹å¤–ï¼Œä½ å¯ä»¥çœ‹ä¸‹ [demo](https://github.com/sjdy521/Mojo-Webqq/tree/master/demo) 目录下的更多代ç 示例 2. *我是对Perlä¸ç†Ÿæ‚‰ï¼Œæ˜¯ä¸€ä¸ªå…¶ä»–è¯è¨€çš„å¼€å‘者,åªå¯¹æ供的消æ¯å‘é€/接收接å£æ„Ÿå…´è¶£* å¯ä»¥ç›´æŽ¥æŠŠå¦‚下代ç ä¿å˜æˆä¸€ä¸ªæºç 文件(必须是UTF-8ç¼–ç ),使用 perl 解释器æ¥è¿è¡Œ #!/usr/bin/env perl use Mojo::Webqq; my ($host,$port,$post_api); $host = "0.0.0.0"; #å‘é€æ¶ˆæ¯æŽ¥å£ç›‘å¬åœ°å€ï¼Œæ²¡æœ‰ç‰¹æ®Šéœ€è¦è¯·ä¸è¦ä¿®æ”¹ $port = 5000; #å‘é€æ¶ˆæ¯æŽ¥å£ç›‘å¬ç«¯å£ï¼Œä¿®æ”¹ä¸ºè‡ªå·±å¸Œæœ›ç›‘å¬çš„ç«¯å£ #$post_api = 'http://xxxx'; #接收到的消æ¯ä¸ŠæŠ¥æŽ¥å£ï¼Œå¦‚æžœä¸éœ€è¦æŽ¥æ”¶æ¶ˆæ¯ä¸ŠæŠ¥ï¼Œå¯ä»¥åˆ 除或注释æ¤è¡Œ my $client = Mojo::Webqq->new(); $client->load("ShowMsg"); $client->load("Openqq",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api}); $client->run(); 上述代ç ä¿å˜æˆ xxxx.pl 文件,然åŽä½¿ç”¨ perl æ¥è¿è¡Œï¼Œå°±ä¼šå®Œæˆ QQ 登录并在本机产生一个监å¬æŒ‡å®šåœ°å€ç«¯å£çš„ http server $ perl xxxx.pl å‘é€å¥½å‹æ¶ˆæ¯çš„接å£è°ƒç”¨ç¤ºä¾‹ http://127.0.0.1:5000/openqq/send_friend_message?uid=xxxxx&content=hello * About to connect() to 127.0.0.1 port 5000 (#0) * Trying 127.0.0.1... * Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0) > GET /openqq/send_friend_message?uid==xxxxx&content=hello HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 127.0.0.1:5000 > Accept: */* > < HTTP/1.1 200 OK < Content-Type: application/json;charset=UTF-8 < Date: Sun, 13 Dec 2015 04:54:38 GMT < Content-Length: 52 < Server: Mojolicious (Perl) < * Connection #0 to host 127.0.0.1 left intact {"status":"å‘é€æˆåŠŸ","msg_id":23910327,"code":0} 更多接å£å‚数说明å‚è§[API说明文档](API.md) 3. *我是一个æžå®¢ï¼Œæˆ‘åªæƒ³èƒ½å¤Ÿåœ¨å‘½ä»¤è¡Œä¸Šé€šè¿‡ IRC çš„æ–¹å¼æ¥çŽ©è½¬ QQ èŠå¤©* 请阅读[IRCShellæ’件使用æ¥éª¤](IRC.md) 4. *我是一个 QQ 群主或管ç†å‘˜ï¼Œæˆ‘æƒ³ç»™è‡ªå·±çš„ç¾¤åŠ ä¸ªæœºå™¨äººç¾¤ç®¡ç†åŠŸèƒ½* 请关注 [GroupManage æ’件使用文档](https://metacpan.org/pod/distribution/Mojo-Webqq/doc/Webqq.pod#Mojo::Webqq::Plugin::GroupManage) ### æ ¸å¿ƒä¾èµ–æ¨¡å— * [Mojolicious](https://metacpan.org/pod/Mojolicious) * [Encode::Locale](https://metacpan.org/pod/Encode::Locale) ### 相关文档 * [更新日志](Changes) * [å¼€å‘&é…置文档](doc/Webqq.pod) * [基于HTTPçš„API文档](API.md) * [FAQ](FAQ.md) ### å®˜æ–¹äº¤æµ * [QQ群](http://jq.qq.com/?_wv=1027&k=kjVJzo) * [IRC](http://irc.perfi.wang/?channel=#Mojo-Webqq) ### å‹æƒ…链接 *JavaScript* * [webqqircd](https://github.com/MaskRay/webqqircd) 用IRC客户端控制WebQQ(SmartQQ),类似于wechatircd * [qqbot](https://github.com/floatinghotpot/qqbot) SmartQQ Robot and API Server, powered by node.js * [qqbot](https://github.com/ScienJus/qqbot) 基于SmartQQ(WebQQ)的QQ机器人 / a qq robot based on smartqq(webqq) api *Python* * [SmartQQBot](https://github.com/Yinzo/SmartQQBot) 基于SmartQQ的自动机器人框架 * [qqbot](https://github.com/pandolia/qqbot) A conversation robot base on Tencent's SmartQQ *Java* * [smartqq](https://github.com/ScienJus/smartqq) SmartQQ(WebQQ)的Api ï¼Œä½ å¯ä»¥ç”¨å®ƒå®žçŽ°è‡ªå·±çš„QQ 机器人 ### 赞助奖励 å¯ä»¥é€šè¿‡æ‰«æ支付å®ä»˜æ¬¾äºŒç»´ç 进行赞助,感谢您的支æŒå’Œé¼“励  特别致谢 [那些曾ç»èµžåŠ©çš„å°ä¼™ä¼´ä»¬](https://github.com/sjdy521/Mojo-Thanks) ### COPYRIGHT å’Œ LICENCE Copyright (C) 2014 by sjdy521 This library is free software; you can redistribute it and/or modify it under [BSD 2-clause "Simplified" license](LICENSE)