支持 发送/接收 文字 、图片、视频、语音、表情 、文 件 等 多 种媒体 消息 (网页版 自身 功 能 范围)支持 新 增 /失 去 好 友 、新 增 /退出 群 组、新 增 /失 去 群 成 员等 事件 提 醒支持 创建群 组、群 组加人 /踢人、发送/接受 好 友 验证申 请、设置群 组名称 、设置好 友 备注支持 Windows/Linux/Mac多 平台 ,支持 docker镜像,易 安 装 部署 ,不 懂Perl也能用 提供 基 于HTTP协议的 API接 口 ,简洁丰富,方便 和 其他编程语言集成 - 一个产品经理的倾情之作,
代 码由内 而外都 更 加 注 重 “用 户体验”,外 加 主人 人品 极好,你会懂的
优先级 | github |
|||
---|---|---|---|---|
ShowMsg | 100 | sjdy521 | ||
IRCShell | 99 | sjdy521 | Linux环境 |
|
Openwx | 98 | sjdy521 | ||
Beauty | 95 | sjdy521 | 识别 |
|
Translation | 93 | sjdy521 | ||
KnowledgeBase | 2 | sjdy521 | ||
AutoVerify | 1 | sjdy521 | ||
PostQRcode | 0 | sjdy521 | ||
UploadQRcode | 0 | sjdy521 | 二维码上传图床获得公网访问url | |
XiaoiceReply | 1 | sjdy521 | ||
ShowQRcode | 0 | sjdy521 | 调用 |
|
SmartReply | 0 | sjdy521 |
敲一行命令就能启动一个智能聊天机器人,Perl
cpanm Mojo::Weixin && perl -MMojo::Weixin -e "Mojo::Weixin->new->load('ShowMsg')->load('SmartReply')->run()"
[16/01/19 23:10:49] [info] 客 户端准 备登录...
[16/01/19 23:10:50] [info] 清 除 残留 的 历史二 维码图片
[16/01/19 23:10:30] [info] 二维码已下载到本地[ /tmp/mojo_weixin_qrcode.jpg ]
[16/01/19 23:11:20] [info] 等 待 手 机 微 信 扫描二 维码...
[16/01/19 23:12:09] [info] 手 机 微 信 扫码成功 ,请在手 机 微 信 上 点 击 [登 录] 按钮...
[16/01/19 23:12:10] [info] 正 在 进行登 录...
[16/01/19 23:12:10] [info] 微 信 登 录成功
[16/01/19 23:13:40] [info] 获取联系人 信 息 ...
[16/01/19 23:13:40] [info] 更新 个人信 息 成功
[16/01/19 23:14:41] [info] 更新 好 友信 息 成功
[16/01/19 23:15:42] [info] 更新 群 组[ 红包群 ]信 息 成功
[16/01/19 23:15:42] [info] 更新 群 组[ Perl语言交流 ]信 息 成功
[16/01/19 23:15:42] [info] 开始接收 消息 ...
[16/01/19 23:15:00] [群 消息 ] 小 灰 |Perl语言交流 : Mojo::Weixin不 错哦
[16/01/19 23:15:58] [群 消息 ] 我 ->Perl语言交流 : 多 谢多谢
+-------------------+ +----------------+
| Tencent | | Any IRC Client |
| Weixin Server | | wechat、irssi |
+---v-------------^-+ +-v------------^-+
| | | |
| 微 信 协议交互 | |IRC协议交互 |
+-- --- |-- - - -- | - - - -- - - --- | --- ----- | --+
| +---v-------------^--+ +----v------------^-+ |
| | <——————————————————< | |
| | Weixin Client | Weixin - IRC | IRC Server | |
| | | 协议转换 | 监听本 机 6667端 口 | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我 们程序 实现的 部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+
更 多 应用效果 请参见Mojo-Weixin作品 展
推荐
-
安 装 perl安 装 之 前 请先确认下 你的系 统是否 已 经安装 了 Perl,因 为除了 windows,其他大 部分 的 平台 默 认都可能 已 经预装 过并且你的Perl
版本 至 少 5.10.1+,推荐5.14+Perl
官 网下载页面 有 包含 Unix/Linux、Mac OS X、Windows多 平台 比 较全面 详细的 安 装 说明建 议大家 尽 量 选择Binaries(二进制预编译)的 版本 ,安 装 即 可 使用 ,比 较方便 Linux
上 如果你的perl版本 较低,想 要 升 级perl,可 以考虑使用 工具 perlbrew平台 推荐选择 下 载地址 Windows 1. StrawberryPerl
2. ActivePerl
3. Mojo-StrawberryPerlStrawberryPerl 下 载地址
Mojo-StrawberryPerl下 载地址
ActivePerl下 载地址 Linux 1. 系 统自带
2. yum/apt等 包 管理 器
3.官 方 源 码编译
4. ActivePerl
5. DWIM-PerlActivePerl 下 载地址
DWIM-Perl下 载地址 Mac 1. 系 统自带
2. ActivePerlActivePerl 下 载地址 注意 :Mojo-StrawberryPerl
是 基 于StrawberryPerl精 简打包 而成,适用于windows 32位 /64位 系 统 -
安 装 cpanm工具 (如果系 统已经安装 了 cpanm可 以忽略 此步骤)方法 a:通 过cpan安 装 cpanm(只 适用于root用 户)$ cpan -i App::cpanminus
方法 b:直接 在 线安装 cpanm$ curl -kL http://cpanmin.us | perl - App::cpanminus
官 方 服 务器在国 外 ,如果无法访问,可 以选择下面 的 命令 : $ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus -
使用 cpanm在 线安装 Mojo::Weixin模 块(如果系 统已经安装 了 该模块,执行此步骤会对模块进行 升 级)$ cpanm Mojo::Weixin
如果
安 装 过程中 一直提示下载失败,很可能 是 因 为访问到国外 服 务器网络比 较差这种
情 况下可 以尝试按如下方式 手 动指定 国内 的 镜像站点$ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Weixin
-
安 装 失 败可能 有 帮助的 解 决方法 如果你运气不
佳 ,通 过cpanm没 有 一 次 性 安 装 成功 ,这里提供 了 一些可能有用的信息在 安 装 Mojo::Weixin的 过程中 ,cpan或 者 cpanm会 帮助我 们自动安装 很多其他的 依 赖模块在 众多的 依 赖模块中,安 装 经常容易 出 现问题的主要 是 IO::Socket::SSLIO::Socket::SSL
主要 提供 了 https支持 ,在 安 装 过程中 可能 会 涉 及到SSL相 关库的 编译对于 Linux
用 户,通常 采 用 的 是 编译安 装 的 方式 ,系 统缺少 编译安 装 必要 的 环境,则会导致编译失 败对于 Windows
用 户,由 于不具 备良好 的 编译安 装 环境,推荐采 用 一些已经打包比较全面的Perl运行环境例 如比较流行 的 strawberryperl或 者 activeperl的 最新 版本 都 默 认包含 Mojo::Weixin的 核心 依 赖模块RedHat/Centos:
$ yum install -y openssl-devel
Ubuntu:
$ sudo apt-get install libssl-dev
搞定
了 编译和 运行环境之 后 ,再 重 新 回 到 步 骤2安 装 Mojo::Weixin即 可 请尽
量 在 root下安 装 使用 ,非 root下安 装 使用 参考 FAQ如果仍然
有 问题,Linux上 可 以尝试执行 如下脚本 进行依 赖模块检查$ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Weixin/master/script/check_dependencies.pl"|perl -
-
我 对Perl很熟悉,是 一 个专业的Perler该项
目 是 一 个纯粹 的 Perl模 块,已 经发布 到 了 cpan上 ,请仔细阅读Mojo::Weixin
模 块的使用 文 档除 此之外 ,你可以看下 demo目 录下的 更 多代 码示例 -
我 是 对Perl不 熟 悉,是 一个其他语言的开发者,只 对提供 的 消息 发送/接收 接 口 感 兴趣可 以直接 把 如下代 码保存 成 一个源码文件(必须使用 UTF8编码),使用 perl解 释器来 运行#!/usr/bin/env perl use Mojo::Weixin; my ($host,$port,$post_api); $host = "0.0.0.0"; #发送
消息 接 口 监听地 址 ,没 有 特殊 需要 请不要 修 改 $port = 3000; #发送消息 接 口 监听端 口 ,修 改 为自己 希望 监听的 端 口 #$post_api = 'http://xxxx'; #接收 到 的 消息 上 报接口 ,如果不 需要 接收 消息 上 报,可 以删除 或 注 释此行 my $client = Mojo::Weixin->new(log_level=>"info",http_debug=>0); $client->load("ShowMsg"); $client->load("Openwx",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api}); $client->run();上述 代 码保存 成 xxxx.pl文 件 ,然 后 使用 perl来 运行,就会完成 微 信 登 录并在 本 机 产生一个监听指定地址端口的 http server$ perl xxxx.pl
发送
好 友 消息 的 接 口 调用示 例 http://127.0.0.1:3000/openwx/send_friend_message?id=xxxx&content=hello * About to connect() to 127.0.0.1 port 3000 (#0) * Trying 127.0.0.1... * Connected to 127.0.0.1 (127.0.0.1) port 3000 (#0) > GET /openwx/send_friend_message?id=xxxxx&content=hello HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 127.0.0.1:3000 > 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":"发送
成功 ","id":23910327,"code":0}更 多 接 口 参 数 说明参考 Openwx插件API文 档 -
我 是 一 个极客 ,我 只 想 能 够在命令 行 上通 过 IRC的 方式 来 玩转微 信 聊天
JavaScript
- wechaty Wechaty is wechat for bot in Javascript(ES6). It's a Personal Account Robot Framework/Library.
- wechatircd
用 IRC客 户端控 制 微 信 网页版 - Weixinbot Nodejs
封 装 网页版 微 信 的 接 口 ,可 编程控 制 微 信 消息
Python
Java
- wechat-client Mojo-Weixin HTTP
接 口 的 Java客 户端,非常 感 谢 @dadiyang 贡献
Copyright (C) 2014 by sjdy521
This library is free software; you can redistribute it and/or modify it under MIT License and Anti 996 License