WhatsApp Business API,无需 BSP 繁琐流程。
自 API 推出以来,我们一直是 Meta 官方商业解决方案提供商。模板审批、会话窗口、媒体、互动消息——全部搞定。超过二十亿月活 WhatsApp 用户,通过一个与所有其他 Bird 渠道一致的单一端点即可触达。
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.whatsapp.send({
to: "+15005550009",
template: "order_shipped",
locale: "en_US",
variables: {
customer_name: "Ada",
order_id: "BRD-49217",
tracking_url: "https://track.bird.dev/49217",
eta: "Thursday, May 21",
},
}).safe();
if (error) throw error;
console.log(data.id);
// → "wa_msg_8nB91Yk3p..."从 npm install 到首次发送仅需 5 分钟
用您已经在使用的语言发送 WhatsApp 消息。
覆盖所有主流运行时的 SDK。首次发送将发往授权测试收件人 (+15005550009),使用预审批模板,因此您可以在提交第一个模板审批之前就运行 CI 检查。
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.whatsapp.send({
to: "+15005550009",
template: "hello_world",
locale: "en_US",
}).safe();BSP 门槛隐藏了十件事。我们不会。
WhatsApp 由 Meta 管控。BSP 的选择在于这些管控是出现在您的代码中,还是被隐藏在仪表盘里。我们选择了代码。
- 01
Meta 官方商业解决方案提供商 (BSP)
自 API 推出以来与 Meta 直接合作。无转售中转,无第三方跳转。
- 02
模板管理
提交、跟踪审批状态,并在 Meta 批准或拒绝的瞬间收到 webhook 通知。
- 03
会话窗口感知
SDK 会在发送前告知您当前允许自由格式消息还是模板消息。
- 04
互动消息
按钮、列表、产品卡片和 WhatsApp Flows——在同一个请求体中声明。
- 05
媒体与富内容
图片、视频、文档、位置、联系人、链接预览、表情回应和回复。
- 06
WhatsApp Flows
支持后端验证的多步应用内表单,以 JSON 定义,由 Meta 执行。
- 07
点击跳转 WhatsApp 广告
与 Meta 广告管理工具集成,广告点击直接进入您可以回复的对话。
- 08
跨渠道降级
在任何发送中添加 fallback: "sms" —— 会话过期时自动通过 SMS 路由。
- 09
入站消息 webhook
针对入站消息、已读回执、表情回应和模板状态的 HMAC 签名事件。
- 10
20 亿+用户,一个端点
超过二十亿月活 WhatsApp 用户,通过一次 bird.whatsapp.send 调用即可触达。
我们为何打造 WhatsApp
我们是最早的 WhatsApp BSP 之一。我们仍是少数与您一起交付代码的 BSP。
WhatsApp 是受管控的。您需要获批的模板、用户已选择加入的会话窗口、Meta 企业验证。这些不会改变——也不会消失。改变的是您的 BSP 是让这些门槛更容易还是更难通过——通过在代码中公开、通过您可以订阅的 webhook、通过准确说明问题所在的错误信息。我们选择了第一种方式。
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.whatsapp.send({
to: "+15005550009",
template: "order_shipped",
locale: "en_US",
variables: {
customer_name: "Ada",
order_id: "BRD-49217",
tracking_url: "https://track.bird.dev/49217",
eta: "Thursday, May 21",
},
}).safe();
if (error) throw error;
console.log(data.id);
// → "wa_msg_8nB91Yk3p..."每次状态变更都是一个 webhook。
HMAC 签名载荷,防重放,幂等。所有 Bird 渠道使用相同的消息信封——学会一个,就学会了全部。
{
"type": "whatsapp.read",
"id": "evt_7kQ02v...",
"created_at": "2026-05-19T15:42:08.114Z",
"data": {
"wa_msg_id": "wa_msg_8nB91Yk3p",
"from": "+15551234567",
"to": "+15005550009",
"conversation_id": "wa_conv_3pX1g7t",
"template": "order_shipped",
"delivered_at": "2026-05-19T15:42:01.802Z",
"read_at": "2026-05-19T15:42:08.020Z"
}
}重试计划:5 秒、30 秒、5 分钟、30 分钟、2 小时、6 小时、12 小时。最终尝试失败后进入死信队列;每个死信事件均可通过仪表盘或 API 重新投递。
whatsapp.queued已被 API 接受并排队等待发送至 Meta。whatsapp.sent已交付至 Meta Cloud API。whatsapp.deliveredMeta 报告消息已送达收件人设备。whatsapp.read收件人已打开消息(如果已读回执已开启)。whatsapp.failed永久失败——原因代码在载荷中。whatsapp.received来自 24 小时会话窗口内用户的入站消息。whatsapp.template.approvedMeta 已批准您提交的模板。whatsapp.template.rejectedMeta 拒绝了模板——拒绝原因在载荷中。
降级到 SMS 只需一个属性,而非第二个集成。
如果 WhatsApp 无法送达——会话过期、收件人未选择加入、模板尚未获批——Bird 会在同一请求中通过 SMS 路由相同的消息。相同的认证、相同的幂等性契约、另一端相同的 webhook 格式。
WhatsApp 带 SMS 降级。
await bird.whatsapp.send({
to: "+15005550009",
template: "order_shipped",
variables: { order_id: "BRD-49217" },
fallback: "sms",
});一个载荷,一次认证。会话过期、未选择加入、模板未获批——全部自动通过 SMS 路由。
直接 SMS。
await bird.sms.send({
from: "Bird",
to: "+15005550006",
text: `Your order BRD-49217 has shipped.`,
});相同的线路,直接寻址。当您需要明确走 SMS 路径时使用。