用 Go 写了个微信消息推送的系统,欢迎大家使用

2022-03-09 19:59:55 +08:00
 FatherMurker

Go Message

使用微信测试号和企业微信应用搭建自己的消息推送服务。只要向自己的服务器发送一个简单的 GET 请求,即可将消息推送至你的手机微信上。

https://github.com/LeeJiangWei/go-message

配置

在推送之前,需要先在系统上配置好微信相关的设置。登录系统后台,注册一个新用户,然后参考以下信息配置。

微信测试号和企业微信应用可以只配置其中一个,但必须填写所有字段,否则无法推送。

用户信息

微信测试号

  1. 前往 微信公众平台
  2. 测试号信息 一栏中获取 appID 和 appsecret 。
  3. 测试号二维码 一栏中扫描二维码关注自己的测试号,并在右侧列表中获取自己的微信号,作为接收者 ID 。
  4. 模板消息接口 一栏中新增模板,模板标题随意填写,模板内容填入:From: {{from.DATA}} {{description.DATA}} {{remark.DATA}},提交后获取模板 ID 。
  5. 接口配置信息 一栏中,URL 填入自己服务器的域名 / IP 加上后缀,例如:http://你的域名 /verify/用户名;填入任意 Token 作为接口配置 Token 。填完先不要点击验证,先在回到推送系统中填好接口配置 Token 并成功修改后,再点击验证。

企业微信应用

  1. 企业微信 注册一个企业微信号(不需要企业资质)。
  2. 企业信息 页面最下方获取企业 ID 。
  3. 微信插件 页面用微信扫码关注,这样消息才会直接推送到微信上。
  4. 应用管理 页面创建一个新应用,并获取应用的 AgentId 和 Secret 。消息将通过这个应用推送。
  5. 通讯录 页面右侧列表中,点击自己进入详情,获取自己的账号最为接收者 ID (一般是自己名字的拼音)。
  6. 卡片消息默认 URL 可以随意填写,用于卡片消息点进去的页面,但是必须要有而且要保证是合法 URL ,否则微信服务器会报错。可以使用系统的主页作为 URL 。

推送

发送简单 GET 或 POST 请求到自己服务器上即可完成推送。

注意:所有推送必须携带 token 参数来验证身份,值为用户信息配置中的消息推送 Token 。可以在 URL 中用 query params 的方式,也可以用 form data 的方式。

推送至微信测试号

微信测试号仅支持模板消息。

模板消息

推送 URL ( GET / POST ):http://你的域名 /template/用户名

可选参数字段(用于显示在模板的不同位置):

注:如果用 GET 请求,参数需要全部用 query params 的方式。如果使用 POST 请求,需要全部用 form data 的方式。

示例:http://你的域名 /template/用户名?token=token&from=webpage&desc=Hello%20Wrold&remark=这是一条测试消息

效果:

推送至企业微信应用

企业微信应用支持纯文本消息、文字卡片消息。

纯文本消息

推送 URL ( GET / POST ):http://你的域名 /plaintext/用户名

必需参数字段:

注:如果用 GET 请求,参数需要全部用 query params 的方式。如果使用 POST 请求,需要全部用 form data 的方式。

示例:http://你的域名 /plaintext/用户名?token=token&content=Hello,%20traveller

文字卡片消息

推送 URL ( GET / POST ):http://你的域名 /textcard/用户名

必需参数字段:

注:如果用 GET 请求,参数需要全部用 query params 的方式。如果使用 POST 请求,需要全部用 form data 的方式。

示例:http://你的域名 /textcard/用户名?token=token&title=Hello&desc=World

效果:

部署

直接运行打包好的二进制文件即可。初次运行会产生一个配置文件,里面可以配置 JWT 签发相关设置,是否启用 Redis 作为缓存(默认否),服务运行的端口(默认 80 )。重启服务器后生效。

编译

Windows

GOPROXY=https://goproxy.cn,direct GOOS=windows GOARCH=amd64 go build -o go-message go-message-pusher

Linux

GOPROXY=https://goproxy.cn,direct CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o go-message go-message-pusher

GitHub 地址: https://github.com/LeeJiangWei/go-message

4256 次点击
所在节点    分享创造
22 条回复
qile1
2022-03-11 20:50:30 +08:00
@FatherMurker 给服务传,这样发消息时候用这个服务,干别事情用其他服务就不担心 token 被更新失效啦
bbis
2022-03-13 08:50:28 +08:00
我就喜欢单文件运行的产品 ,回来试试,
有个 go 语言写的东西,是 docker ,想做成单文件运行版,迫于不会 Go 语言,想加个好友探讨下
https://cheen.cn 这里有我的联系方式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/839219

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX