Puppet

Last updated 3 months ago

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