Bird 通过 240 条运营商直连线路覆盖 190 多个国家。当某条运营商链路质量下降时,我们会在下一条消息发出前实时重新选择路由。每次发送都会返回运营商送达回执,让您始终知道终端是否收到了消息。
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.sms.send({
from: "Bird",
to: "+31612345678",
text: "Your order #4821 has shipped. Track it: bird.ly/t/4821x",
category: "transactional",
}).safe();
if (error) throw error;
console.log(data.id);
// → "sms_01m11jw130e7svjzv70kgqr38w"
你的发送所依托的那一层。
路由是 Bird SMS API 之下的那一层。你用一个 from、一个 to 和一段 text 调用一个端点;在底层,我们会解析接收方的运营商、选择一条连接并交付消息。当某条路径变差时,路由会改变,而你的代码不会。
路由层为你决定的内容。
按消息解析,隐藏在一次 API 调用背后。
- 01
直连运营商连接。
240 条直连线路将我们与 190 多个国家的移动运营商直接相连。您的消息与运营商 SMSC 之间没有任何转售商环节。
- 02
实时路由重选。
我们监测每条路径上的投递和延迟。当某条运营商路由开始质量下降时,下一条消息会经由一条更健康的连接发往同一运营商。故障转移在你察觉之前就已完成。
- 03
发送前进行 MNP 查询。
我们在每次发送时解析接收方当前的运营商,因此一个已携号转网的号码会路由到实际持有它的运营商,而不是它最初被分配时所属的运营商。
- 04
为每条消息提供一份投递回执。
运营商自己的 DLR 会以 sms.delivered 或 sms.failed webhook 形式返回,携带它落地的网络以及所用的时间。你这边无需推测。
- 05
按路由选择最低成本或最高质量。
路由会为每个目的地权衡成本与投递质量。事务性流量倾向于最快、最可靠的路径;批量流量则可以偏向最低成本。
为什么直连运营商胜过聚合商链条。
大量 SMS 流量在到达运营商之前会经过两三个转售商。每一次跳转都增加了一处消息可能停滞、价格可能攀升、投递回执可能被丢弃或伪造的地方。直连连接消除了这些中间商:消息从 Bird 直接到运营商,回执也沿同一路径返回。这正是全球约 40% 商业 SMS 已经通过这张网络运行的方式,其中 95% 的消息在 2.5 秒内投递。
投递回执,直接来自运营商。
发送请求返回 202;结果通过签名 webhook 以运营商 DLR 的形式送达。负载中包含承载该消息的运营商名称及其最终到达的确切移动网络(MCC-MNC)。
{
"type": "sms.delivered",
"timestamp": "2026-05-19T15:42:01.221Z",
"data": {
"sms_id": "sms_4kT01Lq2m",
"workspace_id": "ws_8KQ2",
"to": "+15005550006",
"from": "+12025550188",
"tags": null,
"metadata": null,
"carrier": "Verizon",
"mcc_mnc": "311480",
"cost": {
"amount": "0.0079",
"currency_code": "USD",
"transaction_amount": "0.0079",
"passthrough_amount": null
}
}
}
mcc_mnc 标识了接收该消息的确切移动网络;一个与号码归属运营商不同的值,就是你判断接收方已携号转网的信号。
sms.delivered运营商已确认手机收到了消息(DLR)。sms.failed运营商拒绝或无法投递,并附有具体原因。
付诸实践。
继续查阅此主题的文档、指南和示例。资源为英文。