Puppet
1. 介绍
不同的Puppet 代表的我们对微信协议的不同实现方式, Puppet的英文意思是傀儡
, 很形象的描述了我们希望Puppet做的事情:帮助 Wechaty 来控制微信的操作。
所有的实现方式都以PuppetXXX
来命名的,比如PuppetPuppeteer 是通过谷歌浏览器,通过 google puppeteer来控制网页微信API。PuppetPadchat 是通过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 | ||
PuppetPadchat | iPad 协议 | wechaty-puppet-padchat | ||
PuppetWechat4u | 通过HTTP 调用网页API | wechaty-puppet-wechat4u | ||
PuppetIoscat | iPhone Hook | wechaty-puppet-ioscat | ||
TBW | Android Hook | Android | 0.0.0 | |
TBW | Win32 Hook | Win32 | 0.0.0 |
2.2 开发 Puppet 开发者
Puppet | 使用的微信协议 | Npm 名称 | Npm 版本 | 状态 |
---|---|---|---|---|
Puppet | 抽象父类 | wechaty-puppet | ||
PuppetMock | 为单元测试提供模拟调用 | wechaty-puppet-mock |
3. Wechaty Puppet 兼容性
3.1 Puppet 联系人接口
Contact API | 描述 | PuppetWechat4u & PuppetPuppeteer | PuppetPadchat | PuppetIoscat |
---|---|---|---|---|
Permanent ContactPayload.id | 唯一id | Yes | ||
ContactPayload.friend | 判断是否为机器人好友 | Yes | Yes |
3.2 Puppet 消息收发接口
Message API | 描述 | PuppetWechat4u & PuppetPuppeteer | PuppetPadchat | PuppetIoscat |
---|---|---|---|---|
messageSendContact() | 发送联系人名片 | Yes | ||
messageFile() | 接收文件 | Yes | Yes: 图片/音频/视频 No: 其他文件 | |
messageSendFile() | 发送文件 | Yes | Yes: 图片/音频/视频 No: 其他文件 | |
messageSendUrl() | 发送链接消息 | Yes |
3.3 Puppet 微信群接口
Room API | 描述 | PuppetWechat4u & PuppetPuppeteer | PuppetPadchat | PuppetIoscat |
---|---|---|---|---|
Permanent RoomPayload.id | 唯一群id | Yes | ||
roomQrcode() | 获取群二维码 | Yes | Yes | |
roomCreate() | 创建微信群 | Yes | Yes | |
roomAdd() | 邀请好友入群 | Yes | Yes | |
roomDel() | 将用户踢出群聊 | Yes | Yes | |
roomQuit() | 主动退群 | Yes | Yes | |
roomAnnounce() | 发群公告 | Yes | Yes | |
roomPayload.owner | 获取群主信息 | Yes | ||
roomInvitaition | 自动接受群邀请 | Yes |
4. 了解更多
你可以参考这里了解更多的 Wechaty Puppet 内容: https://github.com/Chatie/wechaty-puppet/wiki