“notify”在 Go 生态里不止一个库,支不支持 QQ / 微信 / 企业微信,得看你说的是哪一个。下面按常见几款拆开说,并顺带把“微信”到底指哪种讲清楚(这步最容易踩坑)。

一、几个常见 “notify” 类库的实际渠道

  • github.com/sunmking/notify:钉钉群机器人、飞书群机器人、企业微信群机器人、邮件。没有 QQ,也没有个人微信;企业微信只走“群机器人 webhook”。
  • gitee.com/idcu-go/notify:企业微信(wecom,markdown、可@人)、钉钉、飞书、邮件 SMTP、通用 webhook、Slack、Telegram、PagerDuty。同样没有 QQ、没有个人微信,但“通用 webhook”可自己转接。
  • github.com/nikoksr/notify:Telegram、Slack、Discord、MS Teams、Google Chat、钉钉、飞书、邮件/SES/SendGrid、Twilio/Pushover/Bark 等;微信项走的是“企业微信 API”,不是个人微信;材料未列 QQ。
  • github.com/sk-pkg/notify:Lark、DingTalk、WeChat、Email、Telegram、Bark,其中 WeChat 子包一般对接企业微信/公众号类,不是私人号。

结论先给:如果你说的 notify 是上面这类“告警/消息聚合库”,企业微信基本都能搞(群机器人或应用消息),个人微信基本不直接支持,QQ 基本不直接支持。

二、企业微信:基本没问题,分两种接法

  1. 群机器人 webhook:创建群机器人拿 webhook URL,发 text/markdown,最像钉钉/飞书。sunmking、idcu 都支持。
  2. 自建应用发消息:用 CorpId+Secret 换 access_token,通过 message/send 按用户/部门/@all 推文本、markdown、卡片。适合正式系统告警/工单;需要 AgentId、可见范围、回调可选。

如果库本身没封装应用消息,只用它“通用 webhook”或自己写个 HTTP 调 qyapi.weixin.qq.com 也行。

三、微信(个人号 / 公众号 / 企业微信)要分开

  • 企业微信 ≠ 微信个人号,上面已说,稳。
  • 微信公众号模板消息:需认证服务号、走模板消息接口,新号限制多,不适合内部告警。
  • 个人微信私聊/朋友圈自动发:腾讯不开放个人号 API。Go 里能“间接”做的方式:
    • iLink/扫码登录类 SDK(如部分 bot SDK 的 weixin iLink 模块)
    • 第三方协议客户端(如 gewe、go-cqhttp 思路移植到微信)或 OneBot 适配层
    • Server酱 / PushPlus / Bark 中转,再推到微信服务号
    • 缺点:稳定性、合规、封号风险都高,生产告警不推荐。

所以“支持微信”这句话在库文档里若没写清,默认通常指企业微信,不是个人微信。

四、QQ:要看是用“官方机器人”还是“私人号”

  • QQ 官方机器人(QQ 开放平台):AppID+AppSecret,走 BotGo 类 SDK(tencent-connect/botgo),支持频道/群/私聊 AT 消息、webhook 或 WebSocket。 有些聚合 bot SDK 直接封装了 QQ,比如 im-bot-sdk 的 platforms/qq 用 APP_ID/APP_SECRET 建 bot。
  • 私人 QQ 发消息:没有官方 API,通常靠 OneBot + go-cqhttp 等协议端,Go 侧通过 HTTP/WS 发指令。 同样有风控/封号/维护成本。
  • 多数“告警型 notify 库”不内置 QQ;真要发,可:用 BotGo 自己写个 service,或者用库的“通用 webhook”指向你的 OneBot 网关。

五、怎么选(按你的场景)

  • 只做运维/业务告警,接收人在企业微信+钉钉+飞书 → 任选 sunmking/idcu/nikoksr,企业微信用群机器人最省事。
  • 要推到“普通微信用户手机”且不想养企业微信 → 用 Server酱/PushPlus/Bark 做中转,或部署 message-pusher 这类 Go 推送服务(它列了企业微信应用、企微机器人、飞书、钉钉、QQ 等渠道)。
  • 要双向机器人、QQ群+微信私聊+飞书+钉钉一起 → 别用纯 notify 告警库,改用 bot 框架(im-bot-sdk / botgo / OneBot 网关)自己编排。
  • 强合规、不让碰个人协议 → 企业微信应用消息替代“微信”需求,QQ 仅用官方机器人。

除了前面那几款,按“纯 Go 库 / 自托管推送服务 / 多平台 bot 框架 / 第三方中转”再补一批,重点看 QQ、微信(个人/公众号/企业微信)覆盖情况。

一、轻量 Go 通知库(直接 import 用)

  • moonD4rk/notifier:零依赖、单消息扇出多通道。已带 DingTalk、Bark、Lark/Feishu、Server酱、WeCom(企业微信)、Telegram;不带 QQ、不带个人微信。
  • gitee.com/wangsoft/go-library/message:封装飞书、钉钉、企业微信(群机器人 webhook)、微信公众号(appid/secret 模板类)、Server酱、WxPusher。要推个人微信可用 WxPusher,要企微用 WecomNotifier。
  • gtkit/msgbot:飞书(webhook+自建应用)、企业微信 webhook、钉钉 webhook,带 token 缓存和多 provider 并发广播;不含 QQ/个人微信。
  • kart-io/notifyhub:统一路由+模板+队列,内置钉钉、企业微信群机器人、Teams、Discord、Telegram,其余走“自定义平台”HTTP 适配;可自己挂 QQ/微信 webhook。

这类库定位是“告警/运维推送”,QQ 和个人微信基本都要自己写 sender 或用自定义 webhook 转接。

二、自托管 Go 推送服务(单二进制/HTTP API)

  • songquanpeng/message-pusher:Go 单可执行,渠道很全——企业微信应用、企业微信群机器人、飞书自建/群机器人、钉钉、Bark、Telegram、Discord、邮件 SMTP、QQ、微信测试号、Server酱兼容、自定义 webhook、WebSocket 客户端;支持多通道分组一次群发。
  • ntfy(binwiederhier/ntfy):自建通知,iOS/Android/桌面都收,偏 pub/sub,不是专门接企微/QQ,但可做内部统一入口。
  • heimdallr(LeslieLeung):轻量聚合,Bark 风格路由,可放云函数;渠道比 message-pusher 少。
  • gewe-notice / 类通用框架:把钉钉/飞书/企微/邮件/短信做成 Sender 接口,适合自己二次开发接 QQ。

自托管里“微信”通常是:企业微信应用(最稳)、微信测试号(需公众平台测试号+模板)、或接 WxPusher/Server酱;个人号不直接支持。

三、多平台 IM / bot 框架(要双向、要 QQ 必看)

  • keepmind9/im-bot-sdk:Go 轻量 bot SDK,支持 Telegram、Discord、飞书、钉钉、QQ(官方 APP_ID/SECRET)、微信 iLink。
  • godeps/goim:单 Runtime 接 10+ 平台,含 Telegram、飞书、Discord、Slack、钉钉、WeCom、QQ、QQBot、LINE、WeChat;适合接 AI agent 或统一网关。
  • MuseBot:Go 单二进制,列了 Telegram/Discord/Slack/飞书/钉钉/企业微信/QQ/微信/Web 九平台,QQ 走 OneBot、微信走公众号回调;偏 AI 助手场景。
  • AniaBot:Go 插件式,QQ 走 NapCat/OneBot v11、飞书官方、Telegram、Discord、微信 iLink 扫码;适合自建机器人而不是纯告警。
  • OneBot 体系(go-cqhttp/NapCat/icqq + Go 客户端):QQ 非官方完整能力用 icqq 类适配器,官方频道/群/私聊用 QQ 开放平台 BotGo;微信可用 OneBot 微信适配器或 iLink 适配器。

规则:QQ“官方机器人”用 BotGo/APP_ID 最稳;要私聊全量、历史消息就用 OneBot 非官方,但有风控。微信“官方”只建议公众号/企业微信/测试号;iLink、个人协议都算灰色。

四、不想写代码:第三方中转(个人微信最省事)

  • PushPlus:HTTP 一个接口,微信、企业微信、钉钉、飞书、邮件、短信、浏览器等十几个渠道;运维告警直接 curl。
  • Server酱 Turbo:微信服务号/企业微信/企微群/钉钉/飞书/PushDeer,老项目兼容性好。
  • WxPusher:推个人微信,关注公众号/APP 订阅,走 uid/topic;适合低频告警,不等同于个人号自动聊天。
  • 虾推啥:个人微信/iPhone 推送,token 式 curl,免费限频;极轻量。
  • 微信测试号自搭:用 message-pusher 或 go-message 之类,配公众平台测试号 appid/模板,推到个人微信,但模板消息、测试号资质有限制。

五、按需求速选

  • 只做运维告警、接收人在企微+钉钉+飞书 → moonD4rk/notifier 或 msgbot,企微用应用/群机器人。
  • 要“一个服务管所有、网页配通道、QQ 也要” → message-pusher 最省事(含 QQ、企微应用、微信测试号)。
  • 要双向机器人、QQ群+企微+飞书+TG → im-bot-sdk / goim / AniaBot;QQ 官方用 BotGo,要全量用 OneBot。
  • 只推个人微信、不想碰企微 → PushPlus/WxPusher/Server酱,别自己接个人号协议。
  • 强合规生产系统 → 企业微信自建应用为主,QQ 仅官方机器人,个人微信和个人QQ协议一律不碰。