project,

暑期2020 [基于开放 API 封装 Wechaty 接口下的企业微信聊天机器人] POC 成果展示

Sapio S Sapio S Follow Aug 19, 2020 · 1 min read
暑期2020 [基于开放 API 封装 Wechaty 接口下的企业微信聊天机器人] POC 成果展示

本项目计划针对企业微信平台开发一个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相关的内容。

项目进度

  • 已完成工作:
    • 运用企业微信提供的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
      • 完善项目功能,撰写最终报告。

联系我们

Author: @Sapio-S Learning & practicing. Code: @code

Join Newsletter
Get the latest news right in your inbox. We never spam!
Written by Sapio S
持续探索新世界。