Telnyx Messaging - JavaScript 是 Telnyx 提供的 Node.js 消息发送 SDK 技能,用于在 JavaScript 应用中集成短信与多媒体消息功能。
用途
该技能面向需要以编程方式发送和接收 SMS/MMS 的场景,包括通知推送、两步验证(2FA)以及各类消息类应用。文档描述其用途为“Send and receive SMS/MMS, handle opt-outs and delivery webhooks”。
安装与初始化
安装命令:
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 });
文档说明,以下所有示例均假定 client 已按上述方式初始化。
主要能力
核心任务(Core Tasks)包括:
- 发送短信:client.messages.send(),对应 POST /messages,必填参数 to、from、text,可选 messaging_profile_id、media_urls、webhook_url 等。
- 使用字母数字发送方 ID 发送短信:client.messages.sendWithAlphanumericSender(),对应 POST /messages/alphanumeric_sender_id,必填 from、to、text、messaging_profile_id。
- 发送群组 MMS:client.messages.sendGroupMms(),对应 POST /messages/group_mms。
- 发送长号码消息:client.messages.sendLongCode(),对应 POST /messages/long_code。
- 使用号码池发送消息:client.messages.sendNumberPool(),对应 POST /messages/number_pool。
- 发送短号码消息:client.messages.sendShortCode(),对应 POST /messages/short_code。
- 定时发送消息:client.messages.schedule(),对应 POST /messages/schedule,示例含 send_at 参数。
- 发送 WhatsApp 消息:client.messages.sendWhatsapp(),对应 POST /messages/whatsapp。
其他支持操作(Additional Operations)包括:检索消息、取消定时消息、列出/创建/检索/删除字母数字发送方 ID、检索群组 MMS 消息、列出/检索/更新消息托管号码、列出退订(opt-outs)、列出消息配置文件指标、重新生成消息配置文件密钥、列出某配置文件的字母数字发送方 ID、获取配置文件详细指标等,均有对应的 SDK 方法与端点。
使用方式
文档给出错误处理建议,指出所有 API 调用都可能因网络错误、限流(429)、校验错误(422)或认证错误(401)失败,生产代码应始终处理错误,并给出 Telnyx.APIConnectionError、Telnyx.RateLimitError、Telnyx.APIError 的捕获示例。常见错误码:401 无效 API 密钥、403 权限不足、404 资源未找到、422 校验错误、429 限流(使用指数退避重试)。
Webhook 验证:Telnyx 使用 Ed25519 签名 Webhook,每个请求包含 telnyx-signature-ed25519 和 telnyx-timestamp 头。文档要求在服务端验证签名,示例使用 client.webhooks.unwrap(),并提示使用原始请求体(raw body)而非已解析的 JSON。
Webhook 内联字段包括投递更新(data.event_type 为 message.sent 或 message.finalized)和入站消息(data.event_type 为 message.received),文档提示如需内联未列出的字段,应先阅读 webhook payload 参考。
适用场景
根据描述,适用于通知、2FA 和消息类应用,并涵盖退订处理与投递 Webhook 处理。
限制与注意事项
- 电话号码必须为 E.164 格式(例如 +13125550001),包含 + 前缀与国家代码,不能有空格、破折号或括号。
- 发送号码必须先分配到正确的消息配置文件后才能发送流量。
- 美国 A2P 长号码流量在生产发送前必须完成 10DLC 注册,否则运营商会拦截或大幅过滤消息。
- 投递 Webhook 是异步的,发送响应应视为请求已被接受,而非运营商最终投递成功。
- 文档要求不得杜撰 Telnyx 参数、枚举、响应字段或 Webhook 字段;若所需字段未内联显示,应先阅读 references/api-details.md 再编写代码;使用 Additional Operations 前应先阅读可选参数与响应 schema 章节。
- 关于收费、价格及具体商业条款,资料未提供。