基于NodeJS实现企业微信机器人推送

本文介绍如何利用NodeJS实现企业微信机器人的文本、Markdown、图片和文件推送功能。通过配置webhook,结合axios和form-data库,实现自动化报告推送,降低沟通成本。详细步骤包括webhook初始化、各类型消息的推送方法以及文件上传和推送的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

公司是企业微信协同的,刚好之前搞得CLI有输出报告文件的功能;
想了想也可以打通这个流程,让沟通成本降低【不用人工转发】;

运转流程:生成报告-> 推送文件 -> 企业微信群。
再把这个流程接入到自动化执行的流程,就更加人性化了~

那么,这里说说如何利用node快速覆盖这个场景!

需求及环境

前置知识储备

  • IO操作及文件流的概念
  • 加密解密的基础

没玩过的也能跟着帖子,逐步查阅相关资料长见识~

功能需求

  • 配置一个企业微信机器人key即可使用
    • 考虑CI环境可以运行,部分配置支持从环境变量接收
  • 支持推送图片
  • 支持推送文本,Markdown
  • 支持推送文件【比如json,excel等】

环境依赖

成品图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

代码实现

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=${
     
     
要使用 Node.js 实现微信推送功能,你可以使用微信公众平台提供的开发接口来实现。下面是一个基本的实现步骤: 1. 注册微信公众号:前往微信公众平台注册一个公众号,并获取到对应的 AppID 和 AppSecret。 2. 配置服务器地址:在微信公众平台中,配置服务器地址,将接收微信消息和事件的 URL 地址指向你的 Node.js 服务器。 3. 搭建 Node.js 服务器:使用 Express、Koa 或其他 Node.js 框架搭建一个服务器。 4. 实现消息处理逻辑:在服务器中编写处理微信消息和事件的逻辑,根据接收到的消息类型进行相应的处理,例如关注事件、文本消息等。 5. 验证服务器有效性:在服务器中实现微信服务器验证逻辑,验证服务器的有效性,确保可以接收微信发送的消息和事件。 6. 实现消息回复逻辑:根据接收到的消息类型,编写相应的回复逻辑,生成对应的 XML 格式的回复消息,并返回给微信服务器。 7. 调用微信接口:使用 Node.js 的 HTTP 请求库(如 axios、request)调用微信公众平台提供的接口,例如获取 access_token、发送模板消息等。 8. 启动服务器:运行你的 Node.js 服务器,确保服务器可以接收和处理来自微信服务器的请求。 这只是一个简单的示例,具体的实现方式和逻辑根据你的需求和业务场景可能会有所不同。请参考微信公众平台的开发文档和示例代码,以便更好地理解和使用 Node.js 实现微信推送功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crper

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值