通道编排
Bird 决定默认设置。 您只需调整单次调用。
通道可用性、发送方规则和法规因国家/地区而异,要完全掌握这些需要多年的积累。Bird 将其作为按国家/地区的基础配置提供:哪些通道在哪些地区可用、哪些发送方被允许,以及合理的验证码默认值——这些都源自大规模运营电子邮件和 SMS 的经验。一次创建调用即可自动解析为任何国家/地区的正确方案,其选项字段可以重新排序或缩小通道范围,或为该次验证设置验证码长度。
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({
apiKey: process.env.BIRD_API_KEY!,
});
// Send the code, then check it by recipient.
await bird.verify.verifications.create({
to: { phone_number: "+15551234567" },
}).safe();
const { data, error } = await bird.verify.verifications.check({
to: { phone_number: "+15551234567" },
code: userInput,
}).safe();
if (error) throw error;
您的账户
确认是您本人。
输入发送至以下号码的验证码
+1 ••• ••• 4567示例验证码
深受构建世界级软件团队的日常信赖
查看更多客户故事Bird 的默认设置随每次调用自动生效。
在 Bird Verify API 上的每次验证都会基于 Bird 多年运营电子邮件和 SMS 所维护的按国家/地区基础配置进行解析,因此在您编写任何代码之前,验证已经能在每个国家/地区合理路由。单次请求选项仍可调整单次调用:重新排序或缩小通道范围,或设置验证码长度。您永远不需要从零开始。
两个层级决定方案。
更具体的设置优先;请求中未指定的部分会回退到 Bird 的按国家/地区基础配置。
- 01
单次请求选项。
在创建调用中传入 channels 或 code_length,即可为该次验证重新排序或缩小通道范围,或设置验证码长度。省略任一参数则应用该国家/地区的默认值。
- 02
Bird 的按国家/地区基础配置。
Bird 自有的按国家/地区默认设置,源自大规模运营电子邮件和 SMS 的经验:哪些通道可用、哪些发送方被允许,以及合理的验证码和有效期默认值。请求中未覆盖的部分都从此解析,因此验证始终落在合理的方案上。
验证解析的结果。
一个巴西号码会基于 Bird 针对巴西的按国家/地区基础配置进行解析,并受调用中任何单次请求选项的约束。WhatsApp 和 SMS 在巴西均可用,因此验证会报告该排序后的方案及其类型化的 vrf_ id。
const { data, error } = await bird.verify.verifications.create({
to: { phone_number: "+5511998765432" }, // Brazil
}).safe();
if (error) throw error;
// Resolved from the per-country base, capped by availability and the kill-switch:
// {
// id: "vrf_01k2m9q8e7fh3v0b7m4d2a9xzt",
// status: "pending",
// channels: [{ channel: "whatsapp" }, { channel: "sms" }],
// last_channel: "whatsapp"
// }
两道上限位于默认设置之上。
上述两个层级决定默认设置。两道门控决定在此基础上允许什么,每一道都只会缩小已解析的方案:
按国家/地区可用性。 一个国家/地区的已解析方案只会包含 Bird 在该地区实际提供的通道。请求的选项可以重新排序或缩小该方案;但不能添加该国家/地区不支持的通道,因为可用性取的是交集。
全局熔断开关。 当供应商出现故障时,Bird 可以一次性在所有地区撤除某个通道。已解析的方案会自动回退到下一个通道,并在开关恢复时自动复原。
方案包含在每个响应中。
每次验证独立解析,随响应返回。
- 01
解析后的方案随响应返回。
每次验证都会报告其解析后的有序通道列表,因此已解析的方案绝不会是黑箱。
- 02
自动故障转移为您依次执行方案。
某个通道失败时,验证会自动推进到方案中的下一个通道;每次尝试的投递计时器会在完全未收到投递状态时触发推进。会话中的每个验证码都保持有效,因此接收者可以使用任何一条到达的消息。您也可以通过下一通道调用按需推进验证。