适用于 iOS、Android 和 Web 的推送通知。
Token 管理抽象层、逐设备订阅、原生富载荷、分群定向推送。与所有其他 Bird 渠道共享相同的认证、幂等性和 Webhook,因为它们全部由同一个工程团队构建。
从 npm install 到首次发送仅需5分钟
使用您已熟悉的编程语言发送通知。
覆盖所有主流运行时的 SDK。从移动端或 Web 客户端注册令牌;从后端通过令牌或 user_id 发送。
此 API 上线后将提供代码示例。SDK 已覆盖现有频道。
十个基本操作,将 APNs 和 FCM 统一为一个端点。
底层直连 APNs 和 FCM,无第三方推送聚合中间层。我们只是将平台差异隐藏在统一接口之后。
- 01
一次调用覆盖 iOS、Android 和 Web
一个 bird.push.send 调用。我们根据已注册设备自动分发到 APNs、FCM 和 W3C Push Protocol。
- 02
令牌管理抽象
使用 bird.push.tokens.register 注册令牌。我们自动跟踪平台、语言区域和最后活跃时间,无需您手动处理。
- 03
按令牌或 user_id 发送
可向单个设备发送,也可传入
{ user_id },我们会自动向其所有已订阅的设备分发消息。 - 04
逐设备订阅状态
每个注册的令牌都有独立的订阅状态。撤销一个不会影响其他设备。
- 05
原生富载荷
标题、正文、图片、操作按钮、深度链接 URL、自定义数据:精准映射到 APNs alert 和 FCM notification。
- 06
静默/后台通知
传入 content_available: true,我们会根据平台正确路由到 APNs 后台推送和 FCM 纯数据推送。
- 07
分群定向
在注册时为用户打标签;通过 bird.push.send 按标签定向发送。无需集成第三方 CDP。
- 08
送达与打开回执
push.delivered、push.opened、push.dismissed 事件。与所有其他渠道相同的 HMAC 信封。
- 09
令牌生命周期自动管理
当 APNs / FCM 返回未注册令牌时,我们自动标记为失效并停止发送。无需手动清理。
- 10
相同的认证,相同的错误信封
一个 API 密钥即可用于 Push、SMS、Email、WhatsApp、Voice。所有渠道共用一套错误类型注册表。
我们为何打造 Push
因为推送不应该和您的 SMS、邮件和验证服务分属不同的供应商。
每个产品团队最终都会面对同一套技术栈:iOS 用 APNs,Android 用 FCM,Web 端用 Service Worker,再加一张数据库表来记录哪个用户持有哪些 Token 以及对应的订阅状态。我们构建了这张表,又重新构建了一次,然后将其开放为 bird.push.tokens.register 和 bird.push.send。与 Email 和 SMS 共享相同的认证、幂等性和错误信封,因此推送失败的 OTP 可以在同一请求中回退到 SMS。
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({
apiKey: process.env.BIRD_API_KEY!,
});
// Send by device token...
const { data, error } = await bird.push.send({
to: "token_aPa91Hb...XzQ",
title: "Your driver is two minutes away",
body: "Tap to see the live map.",
data: { ride_id: "ride_2891" },
}).safe();
// ...or by user_id, fanning out to every opted-in device.
await bird.push.send({
to: { user_id: "usr_4hQ2m" },
title: "Your code is 482917",
body: "Enter it on the login screen.",
data: { kind: "otp" },
});
if (error) throw error;
console.log(data.id);
// → "push_2nQ81oP3..."
每次状态变更都是一个 Webhook。
HMAC 签名载荷,防重放保护,幂等处理。所有 Bird 渠道使用相同的信封格式:学会一个,即通所有。
重试计划:5秒、5分钟、30分钟、2小时、5小时,然后10小时重试两次。最后一次重试后,投递将永久失败,可通过仪表板或 API 进行重放恢复。
push.queued已被 API 接受并排队等待发送。push.sent已移交给 APNs / FCM / W3C Push 服务器。push.delivered运营商确认已送达设备(如可用:APNs 为尽力送达模式)。push.opened用户点击了通知(如果您的应用进行了埋点)。push.dismissed用户未打开直接关闭了通知(如果您的应用进行了埋点)。push.failed永久失败(令牌已注销、应用已移除)。令牌将被自动禁用。
如果您已集成 SMS,那就等于已集成 Push。
相同的认证、相同的幂等性契约、相同的错误信封、相同的 Webhook 结构。差异仅在于传输方式,而非调用方式。
Push。
一次调用。我们自动分发到用户拥有的所有已订阅设备,涵盖 APNs、FCM 和 Web。
SMS。
相同的信封,相同的幂等性契约。推送失败时回退,或直接通过 SMS 发送。