SMS(Twilio)
Twilio 接入通过签名 Webhook 收短信和状态回调,发信使用 REST。当前只支持私信文本,不提供发送者配对。
开始前备齐资料
account_sid:AC后接 32 位十六进制字符;api_key_sid:SK后接 32 位十六进制字符;api_key_secret:REST 发信用秘密;auth_token:Webhook 验签用 Auth Token;from_number:具有短信能力的 E.164 号码;status_callback_url:公开 HTTPS 回调 URL。
号码和平台配置见 Twilio Messaging 文档。短信计费由 Twilio、运营商和目的地区决定,开放访问前先限制可用范围。
先让回调真正可达
按共享 Webhook 设置开启 Anyy 的监听并重启 Gateway。回调必须精确使用账号路径,例如默认账号 twilio:
https://YOUR_HOST/channels/sms/twilio/webhook
入站短信与状态回调使用同一路径。代理需保留 Body、签名和原公开 URL;在本机 HTTPS 代理终止 TLS 时,用回环连接访问监听,并传递准确的 X-Forwarded-Proto: https 与 X-Forwarded-Host。此接入不会信任来自非回环连接的转发 URL Header。
保存后再检查访问策略
在 Dashboard 渠道 → 添加 → SMS (Twilio) 填写上述普通值和秘密。新账号 DM 默认 open;用 anyy setup channel 的向导选择 SMS 后可改 open/allowlist/disabled。凭据表单没有策略或名单编辑,切到 allowlist 也不会自动添加号码,详见当前设置范围。
电话号码应使用 E.164,例如 +14155550123。
收发和状态回调分别验证
anyy channel reload
anyy channel doctor sms
先从符合策略的号码发送测试短信,再检查 Anyy 的回复和后续 Twilio 状态。首次 REST 接受只是投递进度之一,不代表收件人已读;结果不明时先查看回执和平台记录,不重复整条发送。
签名失败优先核对 Auth Token、实际公开 URL 和代理配置;REST 失败检查 Account/API Key、From Number 能力;没有后续状态则检查 Status Callback URL 和平台回调设置。