背景

因为我们的用户都喜欢通过微信群讨论的方式进行产品问题反馈,这无疑给日常的线上问题处理的效率带来极大的影响。曾经尝试对用户习惯进行线上填写方式的引导,但最终以失败告终。无奈下看看弄一个微信群监控机器人是否可行。

在之前公司我曾经用python通过itchat弄过一个群播报BI数据的机器人,但因为itcaht采用的是微信web协议,微信监控特别严,很多号都不能使用,即使登录上去了还会经常莫名掉线,极不稳定。因此这回肯定不能再通过web协议的方式来弄了。于是带着一点点期盼发现了Wechaty这个支持微信ipad协议的SDK。

Wechaty官方定义:

Wechaty是一个开源的的个人号微信机器人接口,使用Typescript构建的Node.js应用。支持多种微信接入方案,包括网页,ipad,ios,windows,android 等。同时支持 Linux, Windows, Darwin(OSX/Mac) 和 Docker 多个平台。

这里必须要重点提一下,Token 是 Wechaty 开放源代码项目中所设计和支持的一种认证技术,是句子互动公司基于 Wechaty 的 Puppet 实现插件对云服务 API 的授权账号。这也就意味着你在使用Wechaty开发基于ipad协议的机器人之前必须要先拿到可用的token。你可以从Wechaty社区申请到一个15天有效的试用Token,过了试用期后可以选择付费购买(200RMB/月)或者按照如下介绍尝试获取长期免费的Token:Wechaty Token 申请及使用文档和常见问题

Wechaty目前已经支持了JavaPythonGoPHP等多种语言,但是该SDK原生是用TypeScript编写的,并且github上大量的demo和开源项目都是用node.js写的,再加上Wechaty宣称可以通过6行代码就可以实现一个机器人,于是最终决定用之前一点稚嫩的JavaScript前端开发经验拥抱node.js吧!

参考资料:

  • 官方 API文档

  • 官方demo:wechaty-getting-started

  • wechaty-puppet-padplus 示例 。

  • Wechaty社区 开源项目

通过短时间的学习和尝试后,发现基本微信机器人常用的功能实现几乎都能从这些开源的项目中直接拿到,然后再结合自己的需求再进行改装就可以了,确实开发起来挺方便的。

开发之前,首先要明确一下此次的功能需求:

  • 自动聊天:群聊中通过 @[机器人]xxx, 机器人回复问题反馈模版信息 (已完成)

  • 加入群聊自动欢迎:当新的小伙伴加入群聊后自动 @[新的小伙伴] 发一个文字欢迎 (已完成)

  • 推送机器人登陆二维码到企业微信:机器人掉线后,自动将二维码信息推送给指定企业微信群(已完成)

  • 监控群聊信息:实时将聊天记录入库 (已完成)

  • 自动识别问题反馈信息:自动识别判断群聊中问题反馈类信息,并收纳入问题库 (开发中)

  • 群播报功:每天下班前播报问题收纳和未关闭问题情况 (未开始)

项目github地址: https://github.com/tomallv/wechat-group-chat-monitoring-robot

一、项目结构

|-- src/
|---- index.js                   # 入口文件
|---- config.js                  # 配置文件
|---- onScan.js                  # 机器人需要扫描二维码时监听回调
|---- onRoomJoin.js              # 进入房间监听回调
|---- onMessage.js               # 消息监听回调
|---- onFriendShip.js            # 好友添加监听回调
|---- onDatabaseOperation.js     # MySQL数据库操作回调
|---- onEnterpriseWechatBot.js   # 企业微信群消息发送回调
|---- onFileIO.js                # 文件读取回调
|-- package.json

二、核心包:

  • Wechaty核心包npm install --save wechaty

  • padplus协议包npm install --save wechaty-puppet-padplus

  • 生成二维码npm install --save qrcode-terminal

三、接下来介绍几个核心代码文件

1、配置文件src/config.js):

module.exports = {// puppet_padplus Token
token: "xxxxxxxxxx",// 机器人名字
name: "xxxxxxxxxx",// 房间/群聊
room: {// 加入房间回复roomJoinReply: `\n您好,欢迎您的加入,请自觉遵守群规则,文明交流! 												

实现微信产品问题反馈群实时监控与问题自动录入(上)相关推荐

  1. hive读取hdfs存放文件_数据获取层之Flume快速入门(一) 实时监控单个追加文件

    实时监控 Hive 日志,并上传到 HDFS 中 实现步骤 1.Flume 要想将数据输出到 HDFS,必须持有 Hadoop 相关 jar 包 commons-configuration-1.6.j ...

  2. mac微信怎么设置代理服务器,微信Mac版怎么管理群成员?微信Mac版管理群成员的方法...

    大家对微信的了解应该是很熟悉的了,一般我们都是用微信来聊天.视频.付款.分享朋友圈啊!对手机微信群的添加和删除都很熟悉吧!那么微信Mac版怎么管理群成员呢?下面就是微信Mac版管理群成员的方法步骤,一 ...

  3. 阿里云应用性能管理(APM)产品-应用实时监控服务(ARMS)技术解密 资料下载...

    直播大纲 1. 应用性能管理(APM)背景介绍 2. 分布式链路追踪的现状与使用场景 3. ARMS分布式链路追踪的技术实现 4. 最佳实践 (1) 全息排查+场景链路 (2) 前端监控与应用监控融合 ...

  4. 自带的jvm监控不准_如何实时监控 Flink 集群和作业?

    Flink 相关的组件和作业的稳定性通常是比较关键的,所以得需要对它们进行监控,如果有异常,则需要及时告警通知.本章先会教会教会大家如何利用现有 Flink UI 上面的信息去发现和排查问题,会指明一 ...

  5. 微信小程序开发07 数据监控:善用数据驱动产品迭代

    你好,我是俊鹏,今天我们一起学习如何打造小程序的数据监控体系. 前几年,我看了<人人都是产品经理>这本畅销书,我觉得它给了我们一个很有意义的启示:技术之外,多思考产品.而数据对产品的意义很 ...

  6. 云和恩墨 oracle 监控,产品速递 | 云和恩墨Bethune Pro2——数据库实时监控和智能巡检平台...

    运维工程师负责企业IT系统的日常维护工作,包括每日的系统巡检,日常的系统健康信息监控. 通过使用 Bethune Pro2,工程师可以通过每日巡检建议,快捷的感知各个数据库中存在的隐患与风险点.同时, ...

  7. java 实时监控微信扫码支付,支付成功跳转到成功页面

    **原文链接:https://www.blog-china.cn/liuzaiqingshan/home/39/1510305872502 欢迎访问个人博客,分享更多技术码上中国博客(CodeChin ...

  8. 实时监控网站内容更新,微信来提醒

    木头软件站的网站资讯监控工具,功能强大,可以对各种网站的内容进行监控,比如对网站内容更新的监控,然后微信提醒.监控网站超链接,当出现更新或满足关键字条件时,立即报警提醒并记录.帮助你从海量的网络资讯中 ...

  9. 实时监控:基于流计算 Oceanus ( Flink ) 实现系统和应用级实时监控

    作者:吴云涛,腾讯 CSIG 高级工程师 本文描述了如何使用腾讯云大数据组件来完成实时监控系统的设计和实现,通过实时采集并分析云服务器(CVM)及其 App 应用的 CPU和内存等资源消耗数据,以短信 ...

最新文章

  1. 【错误记录】Google Play 上架报错 ( 我们检测到您的应用程序包含未经认证的广告SDK或未经批准用于儿童导向服务的SDK )
  2. python绘图内容怎么保存_将绘图保存到图像文件,而不是使用Matplotlib显示 - python...
  3. Spring3.2新注解@ControllerAdvice
  4. artDiaLog弹出插件
  5. 逆序对java_逆序对
  6. 邀请和建议的回答_46
  7. 单片机并口应用实验c语言,1单片机并口简单应用(流水灯).docx
  8. make clean
  9. 笔记本电脑内网、外网一起使用
  10. awk 系列Part7:awk 怎么从标准输入(STDIN)读取输入
  11. android 朋友圈弹出框,Android popupwidown 实现朋友圈评论弹窗显示在软键盘上面
  12. H3C官方培训课件大全
  13. linux aria2 使用教程,Aria2安装配置使用教程
  14. Phpstudy简介与使用教程
  15. excel查找出某一列的重复数据
  16. UML知识点总结(一)
  17. win10在几个窗口间切换的快捷键
  18. 微分几何学习(二)(曲线论,弧微分)
  19. ICPR-2018-OCR笔记
  20. 安卓android按宽/高缩放图片到指定大小并进行裁剪得到中间部分图片

热门文章

  1. HRBUST - 1646
  2. 5*5盒式滤波器matlab代码
  3. from Crypto.Cipher import AES报错解决【WindowsLinux】
  4. 修改Android开机画面
  5. 从ICML 2022看域泛化(Domain Generalization)最新进展
  6. 字符及字符串(数字串)输入输出字符串处理函数
  7. unity 点击UI显示3D爆炸特效
  8. 学习指南者STM32F103第一天——LED控制
  9. VSCode Git 使用 GPG
  10. ReleaseCapture 以及 SetCapture 函数 及其应用