本项目计划针对企业微信平台开发一个puppet,让 Wechaty 开发者可以仅仅通过改变一个变量,就能够切换使用企业微信的功能。
暑期2020 [基于开放 API 封装 Wechaty 接口下的企业微信聊天机器人] POC 成果展示
暑期2020
“开源软件供应链点亮计划-暑期2020”(以下简称 暑期2020)是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动。 旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。 根据项目的难易程度和完成情况,参与者还可获取“开源软件供应链点亮计划-暑期2020”活动奖金和奖杯。 官网:https://isrc.iscas.ac.cn/summer2020 官方新闻:http://www.iscas.ac.cn/xshd2016/xshy2016/202004/t20200426_5563484.html 本项目 [基于开放 API 封装 Wechaty 接口下的企业微信聊天机器人] 系 暑期2020 支持的开源项目。
[基于开放 API 封装 Wechaty 接口下的企业微信聊天机器人]信息
- 导师:高原
-
学生:谢昱清
- 项目名称:基于开放 API 封装 Wechaty 接口下的企业微信聊天机器人
- 方案描述:
- 时间规划:
- 准备工作
- 2020.7.1 - 2020.7.19
- 掌握相关技术栈(typescript等),了解puppet构造。
- 与企业微信建立连接,完成node.js到企业微信的信息通路
- 2020.7.20 - 2020.8.5
- 包括对话的加密解密,相关环境配置,node.js与微信SDK的交互。完成node.js进行企业微信消息拉取的demo。
- 注:原计划于2020.7.26完成,但是由于对预期成果理解有误,进展方向出现了偏差,延期一星期。
- 实现 puppet 上各个类型的消息接口
- 2020.8.6 - 2020.8.30
- 正式开发puppet。完成状态函数,消息的读取及消息的存储等内容。可能需要拓展原本puppet的数据结构。其中第一周完成逻辑设计及基本的消息拉取。
- 注:企业微信puppet仅负责拉取消息,不必完成完整的交互过程,因此可能需要单独设计对应的bot进行测试。
- 定时读取消息,并在读取消息之后触发消息事件
- 2020.8.31 - 2020.9.13
- 完成企业微信puppet的所有所需功能,进行收尾工作。
- 企业微信会话存档 puppet 的使用文档
- 2020.9.14 - 2020.9.20
- 在原有的文档上,增加企业微信puppet相关的内容。
- 2020.7.1 - 2020.7.19
- 准备工作
项目进度
- 已完成工作:
- 运用企业微信提供的API接口完成了消息的加密解密以及跨语言的信息传递;
- 完成了基本消息类型(text,markdown等文本信息)的封装;
- 简单配置了参数及内部逻辑,可以定时拉取形成“即时沟通”的效果;
- 完成了基础功能的demo。
- 遇到的问题及解决方案:
- 对项目需求不明确,前期缺乏和导师的有效沟通,导致有一两周的进展与目标方向无关,成为了无用功。后期应当积极与导师沟通,尽快解决存疑的问题,避免出现类似的情况。
- 使用全新技术栈,除了需要花费较多时间入门外,在配置环境等方面出现了大量问题,有些甚至在网络上都无法搜索到解决方式。例如安装node-ffi时遇到的几个少见的安装bug:
- 编译时没有binding.cc这个文件,需要自己建一个空文件;
- node和npm需要降级,否则无法成功安装编译ffi/ref;
- 如果用C++编译ffi的example(factorial.c),需要更改宏结构,否则会报“Error: Dynamic Symbol Retrieval Error: Win32 error 127”。
- 后续工作安排:
目前对于项目结构和项目需求已经较为明确,可以加快开发的进度。由于在撰写时间规划时,对于项目的要求有一些误解,因此后期工作安排进行了调整。
- 8.17-8.23
- 引入manager,对puppet内部功能解耦合;
- 完成企业微信“获取媒体文件”的功能封装;
- 改善数据存储方式,可能将引入缓存。
- 8.24-8.30
- 完成企业微信中图片、语音、视频等媒体消息格式的封装。
- 8.31-9.06
- 完成企业微信“所有消息格式”列表中所有格式的封装;(由于种类较wechaty定义的多,因此可能需要修改部分消息的存储格式)
- 视情况完成企业微信“外部联系人”等消息的获取。(应当是无法直接拉取到的)
- 9.07-9.13
- 完成puppet中剩余函数的处理;
- 视情况完成企业微信“获取会话同意情况”、“开启成员列表”等功能的封装。
- 9.14-9.20
- 打包发布npm包,撰写使用文档。
- 9.21-9.27
- 完善项目功能,撰写最终报告。
- 8.17-8.23
联系我们
- 项目链接:https://github.com/Sapio-S/wechaty-puppet-official/
- 联系方式:1205402283@mail.qq.com