用途
Twilio Messaging 是 Twilio 的消息平台,可通过单一 API 在多个渠道上发送和接收消息。本技能是渠道概览与入门指南,帮助开发者了解各渠道差异、选择合适的渠道,并按正确顺序完成配置。
主要能力
所有渠道共用 client.messages.create(),唯一区别是 from 和 to 的地址格式。
各渠道对比:
- SMS/MMS:地址格式为 +15551234567(E.164)。MMS 支持图片/视频,但仅限美国、加拿大、澳大利亚。无需模板。覆盖全球 180 多个国家。对应技能 twilio-sms-send-message。
- WhatsApp:地址格式为 whatsapp:+15551234567。支持图片、文档、视频、位置等富媒体。在 24 小时窗口之外需要模板。覆盖 190 多个国家。对应技能 twilio-whatsapp-send-message。
- RCS:使用同一号码(通过 Messaging Service)。支持富卡片、轮播、视频。无需模板。覆盖美国并正在向全球扩展。对应技能 twilio-rcs-messaging。
- Facebook Messenger:地址格式为 messenger:{page-scoped-id}。支持富媒体。无需模板。覆盖全球。
使用方式
统一 API 示例(Python):
import os
from twilio.rest import Client
client = Client(os.environ["TWILIO_ACCOUNT_SID"], os.environ["TWILIO_AUTH_TOKEN"])
# SMS
sms = client.messages.create(
from_="+15017122661",
to="+15558675310",
body="Your order shipped."
)
# WhatsApp — same API, prefixed addresses
whatsapp = client.messages.create(
from_="whatsapp:+15017122661",
to="whatsapp:+15558675310",
body="Your order shipped."
)
Node.js 示例:
const client = require("twilio")(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);
// SMS
const sms = await client.messages.create({
from: "+15017122661",
to: "+15558675310",
body: "Your order shipped.",
});
// WhatsApp — same API, prefixed addresses
const whatsapp = await client.messages.create({
from: "whatsapp:+15017122661",
to: "whatsapp:+15558675310",
body: "Your order shipped.",
});
入门顺序(每一步建立在前一步之上):
- 基础:获取 Twilio 号码,发送第一条 SMS。twilio-account-setup → twilio-sms-send-message
- 发送者策略:创建 Messaging Service 并将号码加入发送者池。生产环境发送应使用 messagingServiceSid 而非 from,以启用地理匹配、粘性发送者并解锁合规功能。twilio-messaging-services
- 合规:注册 A2P 10DLC(美国 SMS 流量必需),设置退订处理。twilio-compliance-onboarding → twilio-compliance-traffic
- 防护:在 Messaging Service 上启用 SMS pumping protection(防止人为流量膨胀)和 compliance toolkit(静默时段、号码重新分配检测)。twilio-messaging-services(Compliance Toolkit + SMS Pumping Protection 部分)
- 添加渠道:添加 WhatsApp 或其他渠道。使用 Content Templates 进行跨渠道消息格式化。twilio-whatsapp-send-message → twilio-content-template-builder
- 监控:启用智能告警以检测错误模式,设置状态回调以跟踪送达。twilio-messaging-services(Intelligent Alerts 部分)→ twilio-messaging-webhooks
适用场景
渠道选型建议:
- 需要触达任意电话号码:使用 SMS,通用,任何手机可用,无需应用。
- 需要全球发送富媒体:使用 WhatsApp,图片、文档、视频全球可用(MMS 仅限美/加/澳)。
- 发送时效性告警(OTP、故障):使用 SMS,打开率最高,无应用依赖。
- 以更低成本触达已订阅受众:使用 WhatsApp,许多市场无按条费用。
- 跨渠道营销活动:从 twilio-marketing-promotions-advisor 开始,规划技能处理渠道组合、合规与回退。
- 发送事务性通知:从 twilio-notifications-alerts-advisor 开始,规划技能处理基于紧急程度的渠道路由。
- 不确定时:先使用 Planner 技能,它会确认用例并推荐合适的渠道组合。
限制
- 无法在单次 API 调用中跨渠道发送:每次 messages.create() 只针对一个渠道。多渠道回退需在应用中实现顺序逻辑(例如先尝试 SMS,失败后发送 WhatsApp)。
- 无法在 24 小时窗口之外使用 WhatsApp 自由格式消息:自用户最后一条入站消息起超过 24 小时后,必须使用预先批准的模板。参见 twilio-whatsapp-send-message。
- 无法在美国、加拿大、澳大利亚之外发送 MMS:MMS 仅支持美/加/澳号码。国际富媒体请使用 WhatsApp。
- 没有 Messaging Service 就无法使用 SMS pumping protection 或 compliance toolkit:这些功能按 Messaging Service 配置,直接使用 from 号码发送不会获得这些保护。
- 无法在单个 Messaging Service 发送者池中混合渠道:Messaging Service 管理 SMS/MMS 电话号码,WhatsApp 发送者单独配置。
- 无法保证任何渠道的送达:SMS 可能被运营商过滤,WhatsApp 可能排队超时(4 小时)。应始终实现状态回调以跟踪送达。
后续步骤
- 发送 SMS:twilio-sms-send-message
- 发送 RCS:twilio-rcs-messaging
- 发送 WhatsApp:twilio-whatsapp-send-message
- 设置发送者池与生产功能:twilio-messaging-services
- 营销渠道选择:twilio-marketing-promotions-advisor
- 通知渠道选择:twilio-notifications-alerts-advisor