Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
78 lines (54 sloc) 6.63 KB

Puppet

1. 介绍

不同的Puppet 代表的我们对微信协议的不同实现方式, Puppet的英文意思是傀儡, 很形象的描述了我们希望Puppet做的事情:帮助 Wechaty 来控制微信的操作。

所有的实现方式都以PuppetXXX 来命名的,比如PuppetPuppeteer 是通过谷歌浏览器,通过 google puppeteer来控制网页微信APIPuppetPadchat 是通过WebSocket 连接一个协议服务器来控制iPad 微信。

如果你希望深入了解Puppet是如何在Wechaty 运行的,你可以在https://github.com/Chatie/wechaty-puppet/blob/master/src/puppet.ts 查看源代码。

基于网页微信的实现方式是免费的,基于其他的接入方式是收费的,详细介绍:收费说明

以下是Puppet 和Wechaty 的架构图,更多Puppet 的介绍在这里: Puppet in wiki

2. Wechaty Puppet 清单

2.1 调用 Wechaty 的开发者

Puppet 使用的微信协议 Npm 名称 Npm 版本 状态
PuppetPuppeteer 通过浏览器 Hook 网页API wechaty-puppet-puppeteer PuppetPuppeteer npm (tag) Stage:Release
PuppetPadchat iPad 协议 wechaty-puppet-padchat PuppetPadchat npm (tag) Stage:Release
PuppetWechat4u 通过HTTP 调用网页API wechaty-puppet-wechat4u PuppetWechat4u npm (tag) Stage:Release
PuppetIoscat iPhone Hook wechaty-puppet-ioscat PuppetIoscat npm (tag) Stage:Release
TBW Android Hook Android 0.0.0 Stage:Release
TBW Win32 Hook Win32 0.0.0 Stage:Release

2.2 开发 Puppet 开发者

Puppet 使用的微信协议 Npm 名称 Npm 版本 状态
Puppet 抽象父类 wechaty-puppet Puppet npm (tag) Stage:Release
PuppetMock 为单元测试提供模拟调用 wechaty-puppet-mock PuppetMock npm (tag) Stage:Release

3. Wechaty Puppet 兼容性

3.1 Puppet 联系人接口

Contact API 描述 PuppetWechat4u & PuppetPuppeteer PuppetPadchat PuppetIoscat
Permanent ContactPayload.id 唯一id No Yes No
ContactPayload.friend 判断是否为机器人好友 No Yes Yes

3.2 Puppet 消息收发接口

Message API 描述 PuppetWechat4u & PuppetPuppeteer PuppetPadchat PuppetIoscat
messageSendContact() 发送联系人名片 No Yes No
messageFile() 接收文件 Yes Yes: 图片/音频/视频 No: 其他文件 No
messageSendFile() 发送文件 Yes Yes: 图片/音频/视频 No: 其他文件 No
messageSendUrl() 发送链接消息 No Yes No

3.3 Puppet 微信群接口

Room API 描述 PuppetWechat4u & PuppetPuppeteer PuppetPadchat PuppetIoscat
Permanent RoomPayload.id 唯一群id No Yes No
roomQrcode() 获取群二维码 No Yes Yes
roomCreate() 创建微信群 No Yes Yes
roomAdd() 邀请好友入群 No Yes Yes
roomDel() 将用户踢出群聊 No Yes Yes
roomQuit() 主动退群 No Yes Yes
roomAnnounce() 发群公告 No Yes Yes
roomPayload.owner 获取群主信息 No Yes No
roomInvitaition 自动接受群邀请 No Yes No

4. 了解更多

你可以参考这里了解更多的 Wechaty Puppet 内容: https://github.com/Chatie/wechaty-puppet/wiki