Home
Softono

Wx Msg Push Tencent

Open source MIT Go
55
Stars
10
Forks
0
Issues
2
Watchers
4 years
Last Commit

 About Wx Msg Push Tencent

基于腾讯云云函数和API网关实现的企业微信应用消息推送服务

Platforms

Web Self-hosted

Languages

Go

Links

Need Help Installing Wx Msg Push Tencent?

We provide expert installation service for this software. Our team will install, configure, and secure Wx Msg Push Tencent on your server. plans start at just $30.

Wx Msg Push Tencent

View on GitHub

基于腾讯云Serverless实现的企业微信应用消息推送服务

Serverless 云函数 计费模式和免费额度于 2022 年 6 月 1 日进行调整,请参考免费额度

Serverless 云函数目前每月有免费资源使用量40万GBs、免费调用次数100万次

API网关目前开通即送时长12个月100万次免费额度

个人或者低频率使用完全够了,可以通过 GET、POST 方式调用发消息。

对于有服务器、域名资源,通过简单修改也可以直接部署到服务器上。

独立部署版见 wx-msg-push

消息效果

点击展开

不用安装企业微信App,直接通过微信App关注微信插件即可实现在微信App中接收应用消息,还可以选择消息免打扰。

消息限制

目前支持发送的应用消息类型为:

  1. 图文消息(mpnews),消息内容支持html标签,不超过666K个字节,会自动生成摘要替换br标签为换行符,过滤html标签。
  2. 文本消息(text),消息内容最长不超过2048个字节,超过将截断。
  3. markdown消息(markdown),markdown内容,最长不超过2048个字节,必须是utf8编码。(支持的markdown语法)

每企业消息发送不可超过帐号上限数*30人次/天(注:若调用api一次发给1000人,算1000人次;若企业帐号上限是500人,则每天可发送15000人次的消息)

每应用对同一个成员不可超过30条/分,超过部分会被丢弃不下发

默认已启用重复消息推送检查5分钟内同样内容的消息,不会重复收到,可修改 EnableDuplicateCheck DuplicateCheckInterval 调整是否开启与时间间隔。

部署方式

首先注册企业微信

创建应用

登录企业微信web管理

进入 应用管理创建应用 ,完成后复制下 AgentId Secret

(如果仅使用文本消息可跳过此步) 进入 管理工具素材库图片添加图片 (这个图片是图文消息的展示图),上传成功后在图片下载按钮上复制下载地址

(如果仅使用文本消息可跳过此步) 把url的 media_id 值复制下备用

进入 我的企业 ,把 企业ID 复制下,进入 微信插件 ,用微信APP扫 邀请关注 的二维码码即可在微信App中查看企业微信消息。

注册腾讯云账号

腾讯云

新建云函数

云函数

如果想要绑定域名的话可以选择香港地区,免备案。

从 releases 中下载 linux-amd64 的预编译 zip 包。

选择 自定义创建运行环境 Go1提交方法 选择 本地上传zip包 选择刚才的 zip 包。

高级配置 中增加 环境变量

  • CORP_ID 企业微信 企业id
  • CORP_SECRET 企业微信 应用Secret
  • AGENT_ID 企业微信 应用AgentId
  • MEDIA_ID 企业微信 图片素材的media_id(如果仅使用文本消息可随意填写)

触发器 配置选择 自定义配置 ,触发方式选择 API网关触发

点击 完成 开始创建

设置API网关

Api网关

进入 API网关 服务列表,选择 配置管理 ,然后 管理API编辑

增加 参数配置 ,参数名 SECRET ,参数位置 path,类型 string

路径修改为 /你的云函数名称/{SECRET}

然后点 立即完成 发布服务

基础配置 中复制 公网访问地址 ,想要绑定域名可以在 自定义域名 中绑定,CNAME指到API网关的二级域名,自定义路径映射 / 路径 到 发布 环境。

使用方法

消息类型值:text 代表文本消息,mpnews 代表图文消息,markdown 代表 markdown 消息。为兼容旧版本,不传默认为图文消息。

支持推送消息至指定的 touser, toparty, totag。不传默认设置 touser=@all

GET方式

https://你的Api网关域名/你的云函数名称/CORP_SECRET?title=消息标题&content=消息内容&type=消息类型

POST方式

$ curl --location --request POST 'https://你的Api网关域名/你的云函数名称/CORP_SECRET' \
--header 'Content-Type: application/json;charset=utf-8' \
--data-raw '{"title":"消息标题","content":"消息内容","type":"消息类型"}'

发送成功状态码返回200,"Content-Type":"application/json" body {"errorCode":0,"errorMessage":""}

其它

发送失败问题排查:

  • 请检查云函数环境变量是否正确
  • 请检查发送url中CORP_SECRET是否正确
  • 请检查Api网关SECRET参数是否设置
  • 进入云函数后台查看请求日志的具体错误原因

更新记录

  • 2021-04-11 支持文本消息,优化代码结构方便新增其它消息类型。
  • 2021-04-29 支持推送消息至指定的touser, toparty, totag
  • 2021-09-13 支持markdown消息类型。