Push 正在升级中

适用于 iOS、Android 和 Web 的推送通知。

令牌管理抽象、逐设备订阅、原生富载荷、分群定向。与其他所有 Bird 通道使用相同的认证、相同的幂等性、相同的 Webhook,因为它们都由同一个工程团队构建。

Cursor
push.ts
即将推出
推送通知
09:41

随时掌握你的一天。

Goldcrest · 刚刚

您的订单正在配送中

在手机上跟踪您的配送进度。

每天都被构建
世界级软件的团队所信赖。

从 npm install 到首次发送只需 5 分钟

用你已有的语言发送通知。

覆盖所有主流运行时的 SDK。从移动端或 Web 客户端注册令牌;从后端通过令牌或 user_id 发送。

此 API 上线后将提供代码示例。SDK 已覆盖现有频道。

十个原语,将 APNs 和 FCM 统一为一个端点。

底层使用真正的 APNs 和 FCM,中间没有第三方推送聚合器。我们只是把平台差异隐藏在统一的接口后面。

  1. 01

    一次调用覆盖 iOS、Android 和 Web

    一个 bird.push.send 调用,我们按已注册设备自动分发到 APNs、FCM 和 W3C Push Protocol。

  2. 02

    令牌管理抽象

    通过 bird.push.tokens.register 注册令牌。我们跟踪平台、语言区域和最后活跃时间,无需你手动处理。

  3. 03

    按令牌或 user_id 发送

    定向单个设备,或传入 { user_id },我们会自动分发到该用户所有已订阅的设备。

  4. 04

    逐设备订阅状态

    每个注册的令牌都有独立的订阅状态。撤销一个不会影响其他。

  5. 05

    原生富载荷

    标题、正文、图片、操作按钮、深度链接 URL、自定义数据:正确映射到 APNs alert 和 FCM notification。

  6. 06

    静默/后台通知

    传入 content_available: true,我们会按平台正确通过 APNs 后台推送和 FCM 纯数据消息路由。

  7. 07

    分群定向

    在注册时为用户打标签;通过 bird.push.send 按标签定向发送。无需集成第三方 CDP。

  8. 08

    送达和打开回执

    支持 push.delivered、push.opened、push.dismissed 事件。与其他所有通道使用相同的 HMAC 信封。

  9. 09

    令牌生命周期自动管理

    当 APNs / FCM 返回未注册令牌时,我们自动标记为失效并停止发送。无需手动清理。

  10. 10

    相同的认证,相同的错误响应

    一个 API 密钥通用于 Push、SMS、Email、WhatsApp、Voice。一套错误类型注册表覆盖所有通道。

我们为什么构建 Push

因为推送不应该和你的 SMS、邮件和验证服务分属不同的供应商。

每个产品团队最终都会面对同一套技术栈:iOS 用 APNs,Android 用 FCM,Web 用 Service Worker,再加一张数据库表来跟踪哪个用户拥有哪些令牌以及各自的订阅状态。我们构建了这张表,然后又构建了一次,最终将其开放为 bird.push.tokens.register 和 bird.push.send。与 Email 和 SMS 使用相同的认证、相同的幂等性、相同的错误响应,因此推送失败的 OTP 可以在同一个请求中回退到 SMS。

push.ts
即将推出
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 通道使用相同的信封:学会一个,就学会了全部。

POST /webhooks/bird
signed

重试计划: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。

push

一次调用。我们向用户拥有的每台已订阅设备扇出推送,覆盖 APNs、FCM 和 Web。

SMS。

sms

相同的信封、相同的幂等性契约。推送失败时可回退,或直接发送 SMS。

每条通知统一费率,全平台通用。

按已送达通知计费。iOS、Android 和 Web 费率相同。APNs 和 FCM 上游免费,因此我们收取的是路由和仪表板费用,而非传输费用。联系销售获取报价和批量价格。

让客户始终参与对话。

与我们的团队聊聊适用于您应用的推送通知。

您的信息

感兴趣的产品

选填

隐私政策

你的下一个创意。
随时连接。