SuperAPI AI 工具集

telnyx-10dlc-javascript

编程与开发

查看项目

更新于 10-16 02:07

技能介绍

用途

Telnyx 10DLC - JavaScript 是 Telnyx 官方提供的 JavaScript SDK 技能,面向美国 A2P(应用到个人)短信合规场景,用于完成 10DLC 品牌(Brand)与活动(Campaign)的注册,并将电话号码分配给活动。

安装与初始化

安装命令:

npm install telnyx@6.74.2

初始化:

import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});

主要能力

核心任务

  1. 创建品牌:client.messaging10dlc.brand.create() — POST /10dlc/brand。必填参数包括 entityType、displayName、country、email、vertical。主要响应字段包括 brandId、identityStatus、status、displayName、state、altBusinessId。

  2. 提交活动:client.messaging10dlc.campaignBuilder.submit() — POST /10dlc/campaignBuilder。必填参数包括 brandId、description、usecase。主要响应字段包括 campaignId、brandId、campaignStatus、submissionStatus、failureReasons、status。

  3. 将消息配置文件分配给活动:client.messaging10dlc.phoneNumberAssignmentByProfile.assign() — POST /10dlc/phoneNumberAssignmentByProfile。必填参数包括 messagingProfileId、campaignId。主要响应字段包括 messagingProfileId、campaignId、taskId、tcrCampaignId。

重要辅助操作

  • 获取品牌:client.messaging10dlc.brand.retrieve() — GET /10dlc/brand/{brandId}
  • 按用例资格查询:client.messaging10dlc.campaignBuilder.brand.qualifyByUsecase() — GET /10dlc/campaignBuilder/brand/{brandId}/usecase/{usecase}
  • 创建电话号码活动:client.messaging10dlc.phoneNumberCampaigns.create() — POST /10dlc/phone_number_campaigns
  • 获取活动:client.messaging10dlc.campaign.retrieve() — GET /10dlc/campaign/{campaignId}
  • 列出品牌:client.messaging10dlc.brand.list() — GET /10dlc/brand
  • 按 ID 获取品牌反馈:client.messaging10dlc.brand.getFeedback() — GET /10dlc/brand/feedback/{brandId}

其他操作

技能还索引了品牌 SMS OTP 状态查询、更新品牌、删除品牌、重发品牌 2FA 邮件、列出/订购/导入外部审核、重新审核品牌、触发与验证品牌 SMS OTP、列出活动、接受共享活动、获取活动成本、更新活动、停用活动、提交活动申诉、获取活动 MNO 元数据、获取活动操作状态、获取 OSR 活动属性、获取共享状态等操作,均提供对应的 SDK 方法与端点。

使用方式

错误处理

所有 API 调用都可能因网络错误、限流(429)、校验错误(422)或认证错误(401)而失败。生产代码中应始终处理错误:

try {
  const telnyxBrand = await client.messaging10dlc.brand.create({
    country: 'US',
    displayName: 'ABC Mobile',
    email: 'support@example.com',
    entityType: 'PRIVATE_PROFIT',
    vertical: 'TECHNOLOGY',
  });
} catch (err) {
  if (err instanceof Telnyx.APIConnectionError) {
    console.error('Network error — check connectivity and retry');
  } else if (err instanceof Telnyx.RateLimitError) {
    const retryAfter = err.headers?.['retry-after'] || 1;
    await new Promise(r => setTimeout(r, retryAfter * 1000));
  } else if (err instanceof Telnyx.APIError) {
    console.error(`API error ${err.status}: ${err.message}`);
    if (err.status === 422) {
      console.error('Validation error — check required fields and formats');
    }
  }
}

常见错误码:401 无效 API 密钥,403 权限不足,404 资源未找到,422 校验错误(检查字段格式),429 限流(使用指数退避重试)。

分页

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

Webhook 验证

Telnyx 使用 Ed25519 对 Webhook 签名。每个请求包含 telnyx-signature-ed25519 和 telnyx-timestamp 头。生产环境应始终验证签名:

// In your webhook handler (e.g., Express — use raw body, not parsed 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,
    });
    // Signature valid — event is the parsed webhook payload
    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 字段

活动状态更新 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 合规注册的 JavaScript 项目。典型流程为:创建品牌 → 提交活动 → 分配消息配置文件 → 关联电话号码。

限制与注意事项

  • 10DLC 是顺序流程:先创建品牌,再提交活动,然后附加消息基础设施(如消息配置文件)。
  • 仅完成注册调用不足以发送消息;在分配步骤成功完成之前,消息无法使用该活动。
  • 应将注册状态字段视为控制流的一部分,在返回的状态字段确认之前,不要假设活动已可发送。
  • 不要臆造 Telnyx 参数、枚举、响应字段或 Webhook 字段。若所需参数、枚举或响应字段未在技能内联展示,应先阅读 references/api-details.md。
  • 使用“其他操作”中的任何操作前,应先阅读可选参数部分和响应模式部分。
  • 阅读或匹配内联示例之外的 Webhook 字段前,应先阅读 Webhook 负载参考。
  • 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。