V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hzz2
V2EX  ›  程序员

写了一个基于 golang 开发的极简微信测试公众号模板消息推送服务

  •  
  •   hzz2 · 11 小时 9 分钟前 · 373 次点击

    github 地址 https://github.com/hezhizheng/go-wxpush

    ✨ 特性

    ✅ 完全免费,下载即使用
    ✅ 每天 10 万次额度,个人用不完
    ✅ 真正的微信原生弹窗 + 声音提醒
    ✅ 支持多用户
    ✅ 提供免费服务https://push.hzz.cool(请勿滥用)
    ✅ 跳转稳定,自带消息详情页面 (默认使用https://push.hzz.cool/detail, 可自己部署后使用参数替换)
    ✅ 可无限换皮肤 (使用项目wxpushSkin)

    ⚠️ 部署条件 (具体可查看github)

    • 微信公众平台接口测试帐号申请

    • 获取 appid 、appsecret

    • 关注测试公众号,获取 userid(微信号),新增测试模板(注意模版内容填写格式 内容: {{content.DATA}}) 获取 template_id(模板 ID)

    • 将以上获取到的参数代入下面使用即可

    🚀 部署指南

    下载编译好的文件启动

    • 启动参数
      • 命令行启动参数(可不加,启动之后直接在 url 上拼接参数也可) ./go-wxpush_windows_amd64.exe -port "5566" -title "测试标题" -content "测试内容" -appid "xxx" -secret "xxx" -userid "xxx-k08" -template_id "xxx-Ks_PwGm--GSzllU" -base_url "https://push.hzz.cool"
      • url 请求参数(get) 与命令行参数名称一致 /wxsend?appid=xxx&secret=xxx&userid=xxx-k08&template_id=xxx-Ks_PwGm--GSzllU&base_url=https://push.hzz.cool&content=保持微笑,代码无 bug !

    🗭 默认消息详情页

    服务启动成功后会自带消息详情页界面(即消息模板跳转的页面),访问地址 http://127.0.0.1:5566/detail ,如有公网地址,可设置 base_url 参数为对应的 host 即可(无需加/detail)。

    ⚙️ API 使用方法

    服务部署成功后,您可以通过构造 URL 发起 GET 请求来推送消息。

    请求地址

    http://127.0.0.1:5566/wxsend
    

    请求参数

    参数名 类型 是否必填 描述
    port String 指定启动端口(仅针对命令行)
    title String 消息的标题。
    content String 消息的具体内容。
    appid String 临时覆盖默认的微信 AppID 。
    secret String 临时覆盖默认的微信 AppSecret 。
    userid String 临时覆盖默认的接收用户 OpenID 。
    template_id String 临时覆盖默认的模板消息 ID 。
    base_url String 临时覆盖默认的跳转 URL 。

    使用示例

    基础推送

    向默认配置的所有用户推送一条消息:

    http://127.0.0.1:5566/wxsend?title=服务器通知&content=服务已于北京时间%2022:00%20 重启
    

    临时覆盖用户

    向一个临时指定的用户推送消息:

    http://127.0.0.1:5566/wxsend?title=私人提醒&content=记得带钥匙&userid=temporary_openid_here
    

    Webhook / POST 请求

    除了 GET 请求,服务也支持 POST 方法,更适合用于自动化的 Webhook 集成。

    请求地址

    http://127.0.0.1:5566/wxsend
    

    请求方法

    POST
    

    请求头 (Headers)

    {
      "Content-Type": "application/json"
    }
    

    请求体 (Body)

    请求体需要是一个 JSON 对象,包含与 GET 请求相同的参数。

    {
      "title": "Webhook 通知",
      "content": "这是一个通过 POST 请求发送的 Webhook 消息。"
    }
    

    使用示例 (cURL)

    curl --location --request POST 'http://127.0.0.1:5566/wxsend' \
    --data-raw '{
        "title": "来自 cURL 的消息",
        "content": "自动化任务已完成。"
      }'
    

    成功响应

    如果消息成功发送给至少一个用户,服务会返回 "errcode": 0 状态码。

    失败响应

    如果发生错误(如 token 错误、缺少参数、微信接口调用失败等),服务会返回相应的状态码和错误信息。

    2 条回复    2025-12-14 23:29:25 +08:00
    tgyum
        1
    tgyum  
       8 小时 32 分钟前
    好呀 支持
    hzz2
        2
    hzz2  
    OP
       7 小时 41 分钟前
    @tgyum #1 感谢
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   926 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:10 · PVG 07:10 · LAX 15:10 · JFK 18:10
    ♥ Do have faith in what you're doing.