国际短信(Twilio 与 MSG91)接入指南:配置 API 凭据、发送号码与送达状态回调
通过已配置的 Twilio 或 MSG91 服务接收和发送短信,在团队收件箱中回复,并安排短信广播或营销活动。发送范围、费用与回执取决于服务商、号码能力、目的地区及授权条件。
整理于 WAthink 万智客
实际入口、可用参数与操作权限,请结合所用版本、套餐及已启用模块核对。
本篇内容
概览
短信通道通过 Twilio 与 MSG91 两个服务商为 WAthink 增加纯文本消息能力。入站短信进入团队收件箱,客服在同一界面回复,你还可以运行批量短信广播与短信营销活动,并获得真实的送达分析。短信是通用兜底渠道:无需 App 即可触达任何手机,非常适合验证码(OTP)、订单更新和提醒。
每个已连接号码都记录自己的服务商,因此同一工作区可以同时运行 Twilio 和 MSG91,每次发送 — 收件箱回复、广播或营销活动 — 都会自动使用正确的传输通道。
通道工作方式
- 输入服务商的 API 凭据即可连接。WAthink 通过服务商的 HTTP API 发送,并通过你向服务商注册的回调 URL 接收入站短信和送达回执。
- 入站:发送到你号码的短信首先到达服务商,由其 POST 到 WAthink 的入站 URL;WAthink 会创建联系人和会话。
- 送达报告(DLR):服务商将状态更新(sent / delivered / failed)POST 到 WAthink 的状态 URL,汇总到你的消息与营销活动分析中。
- 短信仅支持文本:没有已读回执,长消息会拆分为多个分段(影响费用)。
Twilio:在哪里获取凭据
最适合全球覆盖、双向短信和可靠的送达回执。
- 创建 Twilio 账号:访问
twilio.com并打开 Console(console.twilio.com)。 - 复制 Account SID 与 Auth Token。它们位于 Console 仪表盘的 Account Info 下。Auth Token 是机密信息 — 请像密码一样保管。
- 获取支持消息的号码。前往 Phone Numbers → Buy a number,选择在你需要的国家/地区具有 SMS 能力的号码。(高发送量或号码较多时,可创建 Messaging Service 并将号码加入其中。)
- 在 WAthink 中填入。在渠道 → 短信中选择 Twilio,粘贴 Account SID、Auth Token 和发送号码(E.164 格式,例如
+14155551234)。 - 设置回调。WAthink 会显示一个入站 URL 和一个状态回调 URL。在 Twilio Console 中打开号码的 Messaging configuration,将入站 URL 粘贴到 “A message comes in”(HTTP POST);WAthink 也会在每次发送时携带状态回调,因此送达回执会自动返回。
Test 与 live:Twilio 的 test 凭据不会真正发送消息 — 要实际送达请使用 live SID/token。试用账号只能给已验证的号码发短信,直到你升级账号。
MSG91:在哪里获取凭据
最适合印度及区域批量短信,支持 DLT 注册的发送方 ID 以及模板/流程发送。
- 创建 MSG91 账号:访问
msg91.com并打开面板(control.msg91.com)。 - 复制 Auth Key。在面板的 Settings / API 下找到它。这一个 key 即可认证你的发送。
- 注册发送方 ID(Sender ID)。创建 6 位字母发送方 ID(例如
ACMEIN)。在印度必须完成 DLT 注册(见下文)。 - (用于模板发送时)获取 Flow/Template ID。如果使用 MSG91 Flows/DLT 模板,请在面板中创建模板并复制其 Flow ID / Template ID。
- 在 WAthink 中填入。在渠道 → 短信中选择 MSG91,粘贴 Auth Key 和 Sender ID(如使用模板还需 Flow/Template ID)。
- 设置入站与 DLR Webhook。在 MSG91 面板中将入站和送达报告 Webhook 指向 WAthink 显示的 URL,让入站短信和状态能到达 WAthink。
印度 DLT 是强制要求。印度法规(TRAI)要求短信发送方在 DLT 平台注册:注册企业主体、发送方 ID(Header)以及每条消息的内容模板。未注册的发送方 ID 或未获批准的内容会被运营商拦截,而不是被 WAthink 拦截。请为你计划发送的营销和事务性内容都注册模板。
服务商对比
| 服务商 | 最适合 | 你需要提供 | 双向入站 |
|---|---|---|---|
| Twilio | 全球覆盖、双向短信、送达回执。 | Account SID、Auth Token、一个短信号码。 | 支持(通过号码上的入站 Webhook)。 |
| MSG91 | 印度及区域批量短信、DLT 发送方 ID、模板。 | Auth Key、Sender ID(DLT)、可选的 Flow/Template ID。 | 在开通双向/虚拟号码的情况下支持。 |
连接短信号码
- 打开短信页面 — 菜单中的渠道 → 短信(也可从设备页面的添加 → 短信卡片进入,该卡片链接到这里)。
- 选择服务商 — Twilio 或 MSG91。
- 输入上述凭据。
- 复制回调 URL,即 WAthink 显示的需要填入服务商的地址(入站 + 送达报告)。
- 保存。号码会作为已连接的短信发送方出现,可用于收件箱、广播和营销活动。给自己发一条测试短信,确认双向链路正常。
消息分段、费用与限制
| 主题 | 详情 |
|---|---|
| 分段 | 单条短信为 160 个字符(GSM-7)。更长的消息会拆分为每段约 153 字符的拼接分段。任何非 GSM 字符(许多 emoji、部分重音字符)会把整条消息切换为 UCS-2,每段上限降至 70 个字符。费用按分段计。 |
| 费用 | 短信由你的服务商按分段、按目的国家/地区计费。保持消息简短并使用 GSM 字符有助于控制成本。 |
| 吞吐量 | 适用按号码和按账号的发送速率(印度还有 DLT 清洗延迟)。WAthink 会按服务商限制控制广播/营销活动的节奏。 |
| 没有已读回执 | 短信只报告 sent/delivered/failed — 没有“已读”状态。 |
在收件箱中回复
- 入站短信会创建联系人和会话,按客户手机号聚合。
- 在收件箱中输入的回复会通过同一号码经短信发回,并使用正确的服务商传输通道。
- 送达状态(sent / delivered / failed)来自服务商的 DLR 回调,显示在消息上。
短信广播
打开更多 → 广播并选择 短信。选择短信号码、选择联系人或分组、撰写文本,然后立即发送或定时发送。每个收件人的状态都会根据服务商回执跟踪为 sent / delivered / failed,并附失败原因明细。
短信营销活动
打开营销活动,在通道选择器中选择 短信,然后创建一个简单的营销活动:
- 选择用于发送的短信号码。
- 撰写消息(纯文本;或在 MSG91 上选择已注册的模板)。
- 选择受众 — 联系人、分组或标签。
- 立即发送或定时发送。
营销活动的分析页面会显示从 Twilio 或 MSG91 送达报告汇总的真实 sent / delivered / failed 数量 — 没有估算数字。
合规:只给已选择接收(opt-in)的人发短信;在需要时附上退订方式(例如 Reply STOP to unsubscribe);遵守当地法规;在印度只能从已注册的 Header 发送经 DLT 注册的内容。违规会被运营商拦截,并可能导致发送方 ID 被停用。
故障排查
| 现象 | 原因与解决方法 |
|---|---|
| 发送立即失败(Twilio) | 试用账号向未验证的号码发送、SID/token 错误,或号码不具备短信能力。请验证收件人、升级账号,或购买支持短信的号码。 |
| 发送被拦截(MSG91/印度) | 发送方 ID 或内容模板未获 DLT 批准。请在 DLT 平台注册 Header 和模板。 |
| 收不到入站短信 | 服务商/号码上未设置入站 Webhook。请将 WAthink 的入站 URL 粘贴到号码的消息配置中。 |
| 没有送达更新 | 未配置状态/DLR 回调。请设置送达报告 Webhook(MSG91),或确认状态回调能到达 WAthink(Twilio)。 |
| 费用意外偏高 | emoji/重音字符强制使用 UCS-2(70 字符分段),或长文案被拆成许多分段。请缩短文案并坚持使用 GSM-7。 |
仍需进一步帮助?查看反馈与支持方式