tulir/whatsmeow

开发工具

一个 Go 库,让开发者在自己的应用中通过 WhatsApp Web 多设备协议收发消息。

7,688
1,287
Go
MPL-2.0
创建于 5 年前

如果你需要在 Go 服务里以编程方式接入 WhatsApp,whatsmeow 值得优先评估。它只管协议连接和消息收发,bot 的托管、配置和外围功能都要自己写。

解决什么问题

开发者想把群通知发到 WhatsApp、把客户消息汇入 CRM,或维护一个双向的客服收件箱。靠在手机上手动操作或临时的界面自动化,既无法扩展,也难与后端代码配合。whatsmeow 把这部分工作搬进 Go 进程:完成一次会话认证后,订阅事件并调用发送方法,就能在普通后端流程里收发和响应 WhatsApp 消息,而不是由人拿着手机操作。最终得到的是一个能作为服务运行的消息集成,而不是一个需要人工看管的客户端。

有什么不同

这是面向 WhatsApp Web 多设备协议的 Go 库,可复用的单位是 Go 里的 API,而不是现成的网关或托管产品。文档描述的核心能力比较完整:向私聊和群组发送文本与媒体、接收消息、群组管理与群变更事件、通过邀请消息加入以及邀请链接、输入状态和送达/已读回执、联系人列表和置顶/免打扰等应用状态的读写,以及解密失败时的重试回执。这些基本覆盖了消息集成的常见需求,能省掉不少协议层的工作。

代价是应用层完全由你负责。会话持久化、重连策略、事件处理、消息存储和部署都没有打包好,需要你自己整合。状态消息被标注为实验性,联系人较多时可能不工作;功能清单也明确不含广播列表消息和通话。其中一些限制来自 WhatsApp Web 本身的支持范围,但仍然决定了你的产品能承诺什么。

谁值得试

适合:已有 Go 后端、把 WhatsApp 当作多个渠道之一,并且愿意自己负责会话生命周期、存储选择和事件分发的团队。内部通知服务或接入 CRM 的客服收件箱都可以作为第一个项目。不适合:想要开箱即用、靠配置文件运行的 bot,或者需要通话和广播列表的团队,这些在文档里已列为不支持。如果技术栈不是 Go,这个库没有提供与语言无关的服务接口;在假设包装一层就够用之前,先看使用文档和API 参考。

使用条件与边界

你需要一个 Go 代码库,并能运行维护已认证 WhatsApp 会话的长期进程。除了初始接入,持续的关注点是会话状态:凭据和密钥要能跨重启保留并谨慎处理,因为丢失或处理不当会影响连接。消息解密失败属于运行中的正常情况,库因此提供重试回执;你的代码需要响应这些事件,并决定向用户展示什么。

功能缺口要在设计阶段就确认。通话和广播列表发送应在对外承诺前发现。实验性的状态消息只能当作附加能力,不适合作为群发产品的基础。项目把协议问题指向专门的问答区,日常讨论放在 Matrix 房间,开发过程中预计会用到这些渠道。

HotRepo 点评

HotRepo 只在 2026-10-28 记录到该项目一次进入 GitHub 每日 Trending 榜,当时 7,687 星,当天 +14 星。这一个带日期的观察无法判断关注度是在上升还是消退,持续性也还无法判断。就采用而言,关键检查点是文档中的功能清单:确认产品需要的每项 WhatsApp 能力都已实现,缺失的部分可以接受。请把它当作需要集成的底层库,而不是成品消息产品。

本文由 AI 根据项目 README 生成,更新于 2026年10月28日,以项目官方文档为准。

Hacker News 讨论

Go library for the WhatsApp web multidevice API
▲ 2 · 0 条评论 · 2023年5月18日