前言
公司是企业微信协同的,刚好之前搞得CLI有输出报告文件的功能;
想了想也可以打通这个流程,让沟通成本降低【不用人工转发】;
运转流程:生成报告-> 推送文件 -> 企业微信群。
再把这个流程接入到自动化执行的流程,就更加人性化了~
那么,这里说说如何利用node快速覆盖这个场景!
需求及环境
前置知识储备
- IO操作及文件流的概念
- 加密解密的基础
没玩过的也能跟着帖子,逐步查阅相关资料长见识~
功能需求
- 配置一个企业微信机器人key即可使用
- 考虑CI环境可以运行,部分配置支持从环境变量接收
- 支持推送图片
- 支持推送文本,Markdown
- 支持推送文件【比如json,excel等】
环境依赖
- Node 16
- npm deps [core: Node原生模块]
- 企业微信开发者中心-群机器人
成品图
代码实现
webhook初始化配置
/**
*
* @param {*} key 企业微信机器人推送的key
* @returns 配置信息
*/
const getConfig = (key) => {
const hookKey = key || process.env?.WECHAT_WEBHOOK_KEY || 'xxxxxxxx';
if (typeof hookKey !== 'string' && !hookKey) throw new Error(`${
hookKey} must be string , no empty`);
return {
key: hookKey,
url: `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=${
hookKey}`,
uploadURL: `https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=${