- 仅能使用信息拉取的功能。基本支持全部信息类型的拉取,但是一些种类的信息将转换成普通文本信息存储。
- 请保证电脑可以支持c语言的运行。
- 推荐使用版本为8.7.0的node.js(即开发环境),否则依赖包node-ffi将出现不可控的错误。
- 媒体文件拉取到后将先放入cache文件夹下,产生一份文件。目前没有制定清理该文件夹的功能,可以手动清理该文件夹。
- 将rsa的private key放入private_key.txt中,将corpid(调用企业的企业id,例如:wwd08c8exxxx5ab44d,可以在企业微信管理端--我的企业--企业信息查看)与secret(聊天内容存档的Secret,可以在企业微信管理端--管理工具--聊天内容存档查看)按照json格式放入parameters.json中
- 正常运行box即可
-
puppet整体设计上:
- 尚未在linux系统下测试。
- 性能有很大提升空间。现在的拉取频率是600次/分钟(考虑到接收信息的延迟,可能达不到这个速度),每次1条。企业微信的最大容量是600次/分钟,每次1000条。
- Login与Logout函数没有真正功能,目前是伪登录登出。考虑到实际需求,可能这样也还算合理。
- messageImage、messageMiniProgram、messageUrl等函数仍未实现。观察其实现似乎与图片分类等有关,需要进一步研究。
-
信息拉取部分的其他问题:
- message可以扩充type类,将更多消息分类。目前多数消息都使用text类封装,将企业微信SDK返回的JSON文件直接放入payload.text中,留待后续处理。
- 媒体文件无法进行异步获取。调用messageFIle的时候需要等待媒体文件完全下载才可以进行下一步。这个可能和bot的实现有关,因为示例bot用了await等待文件下载。如果全是后台下载的话速度将快很多。
- 媒体文件未进行md5sum校验。(c代码已经写入了,但是目前转换有bug,因此没有接入)
- contact和room类仅封装了id等基本信息,更多的信息无法通过SDK拉取到,需要获取access_token,进行回调配置之后使用。
-
目前支持的消息内容及其格式:
- 文本
- 图片(可拉取媒体文件)
- 撤回消息
- 同意会话聊天内容
- 语音(可拉取媒体文件)
- 视频(可拉取媒体文件)
- 名片
- 位置
- 表情(可拉取媒体文件)
- 文件(可拉取媒体文件)
- 链接
- 小程序
- 会话记录消息
- 会话记录消息item,承接上面的会话记录消息,但是需要将会话记录一条条单独处理
- 代办消息
- 投票消息
- 填表消息
- 红包消息
- 会议邀请消息
- 切换企业日志
- 在线文档消息
- MarkDown格式消息
- 图文消息
- 日程消息
- 混合消息
- 音频存档消息(可拉取媒体文件)
- 音频共享文档消息(可拉取媒体文件)
- GitHub中的项目尚未调试,不保证可以直接运行。原本的开发环境下,example中的测试用代码与src中的puppet-work.ts代码及.dll文件与package.json等文件在同一个目录下。为了清晰起见,将代码大致作了一些区分,放在不同的文件夹下。运行时可以将src中除c-code文件夹以外的内容全部放入主文件夹下。