SuperAPI AI 工具集

telnyx-10dlc-javascript

编程与开发

查看项目

更新于 10-16 04:50

技能介绍

用途

本技能用于美国 A2P(应用到个人)短信的 10DLC 合规注册流程,基于 Telnyx 的 JavaScript/Node.js SDK 实现。10DLC 是美国运营商对本地号码用于商业短信的注册要求,本技能覆盖品牌注册、活动提交以及将电话号码或消息配置文件分配到活动的完整链路。

主要能力

核心任务包括:

  1. 创建品牌(Brand):调用 client.messaging10dlc.brand.create()(POST /10dlc/brand),必填参数为 entityType、displayName、country、email、vertical,可选参数包括 companyName、firstName、lastName 等。返回字段包含 brandId、identityStatus、status、displayName、state、altBusinessId。

  2. 提交活动(Campaign):调用 client.messaging10dlc.campaignBuilder.submit()(POST /10dlc/campaignBuilder),必填参数为 brandId、description、usecase,可选参数包括 ageGated、autoRenewal、directLending 等。返回字段包含 campaignId、brandId、campaignStatus、submissionStatus、failureReasons、status。

  3. 分配消息配置文件到活动:调用 client.messaging10dlc.phoneNumberAssignmentByProfile.assign()(POST /10dlc/phoneNumberAssignmentByProfile),必填参数为 messagingProfileId、campaignId,可选参数为 tcrCampaignId。返回字段包含 messagingProfileId、campaignId、taskId、tcrCampaignId。

辅助操作包括:获取品牌(GET /10dlc/brand/{brandId})、按用例查询品牌资格(GET /10dlc/campaignBuilder/brand/{brandId}/usecase/{usecase})、创建电话号码活动(POST /10dlc/phone_number_campaigns)、获取活动(GET /10dlc/campaign/{campaignId})、列出品牌(GET /10dlc/brand,支持自动分页迭代)、获取品牌反馈(GET /10dlc/brand/feedback/{brandId})等。

使用方式

安装依赖:

npm install telnyx@6.74.2

初始化客户端:

import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'],
});

错误处理需覆盖网络错误(APIConnectionError)、速率限制(RateLimitError,429)、验证错误(422)和认证错误(401)。常见错误码:401 无效 API 密钥、403 权限不足、404 资源未找到、422 验证错误、429 速率限制(建议指数退避重试)。

分页:列表方法返回自动分页迭代器,使用 for await (const item of result) { ... } 自动遍历所有页面。

Webhook 验证:Telnyx 使用 Ed25519 签名,请求包含 telnyx-signature-ed25519 和 telnyx-timestamp 头。生产环境必须验证签名,使用原始请求体(非解析后的 JSON):

app.post('/webhooks', express.raw({ type: 'application/json' }), async (req, res) => {
  try {
    const event = await client.webhooks.unwrap(req.body.toString(), {
      headers: req.headers,
    });
    console.log('Received event:', event.data.event_type);
    res.status(200).send('OK');
  } catch (err) {
    console.error('Webhook verification failed:', err.message);
    res.status(400).send('Invalid signature');
  }
});

活动状态更新 Webhook 字段包括 brandId、campaignId、createDate、cspId、isTMobileRegistered、type(枚举:TELNYX_EVENT、REGISTRATION、MNO_REVIEW、TELNYX_REVIEW、NUMBER_POOL_PROVISIONED、NUMBER_POOL_DEPROVISIONED、TCR_EVENT、VERIFIED)、description、status(枚举:ACCEPTED、REJECTED、DORMANT、success、failed)。

适用场景

适用于需要在美国通过 Telnyx 发送 A2P 短信的开发者,尤其是需要完成 10DLC 品牌与活动注册、将电话号码或消息配置文件绑定到活动、并处理注册状态与 Webhook 回调的集成场景。

限制与注意事项

  • 10DLC 流程具有顺序性:先创建品牌,再提交活动,最后附加消息基础设施(如消息配置文件)。
  • 注册调用本身不足以发送消息,必须成功完成分配步骤后消息才能使用该活动。
  • 应将注册状态字段视为控制流的一部分,在返回的状态字段确认之前,不要假设活动已可发送。
  • 不要臆造 Telnyx 参数、枚举、响应字段或 Webhook 字段;未内联的字段需查阅 references/api-details.md 或 Webhook 负载参考。
  • 使用 Additional Operations 中的操作前,需先阅读可选参数与响应模式部分。
  • 本技能未提供收费、价格或平台支持范围等具体信息。