如何用Twilio监听POST请求并触发多号码短信发送?
实现监控系统触发Twilio批量发短信方案指引
核心结论
Twilio本身不直接监听公网POST请求触发短信,但不用TwiML Bins(它仅用于处理语音/短信的Webhook响应,比如接电话、收短信时返回交互指令),你可以用Twilio Functions创建一个自定义HTTP端点,接收监控系统的POST请求后,批量调用短信API发送告警。
具体步骤
1. 创建Twilio Function端点
- 登录Twilio控制台,进入「Functions & Assets」→「Functions」,新建一个空白模板的Function。
- 基础配置:
- 勾选「Enable ACCOUNT_SID and AUTH_TOKEN」(自动注入API凭证)
- 将请求方法设置为
POST(匹配你的监控系统请求方式)
2. 编写Function处理代码
替换默认代码为以下逻辑(可按需调整手机号列表、短信内容):
exports.handler = async function(context, event, callback) { // 从监控系统POST请求中提取告警内容(支持动态传参) const alertContent = event.alertMsg || "监控系统触发警报!"; // 目标手机号列表(建议存环境变量,避免硬编码) const targetNumbers = ["+1234567890", "+0987654321"]; const client = context.getTwilioClient(); const sendResults = []; // 循环批量发送短信 for (const number of targetNumbers) { try { const msg = await client.messages.create({ body: alertContent, from: context.TWILIO_PHONE, // 你的Twilio号码,存环境变量 to: number }); sendResults.push(`发送成功至${number}: ${msg.sid}`); } catch (err) { sendResults.push(`发送失败至${number}: ${err.message}`); } } // 返回处理结果给监控系统 callback(null, { status: "done", details: sendResults }); };
3. 配置环境变量
在Function的「Environment Variables」面板添加:
TWILIO_PHONE:你的Twilio已验证手机号或购买的号码(格式如+1xxxxxxxxxx)
4. 对接监控系统
- 保存Function后,复制生成的公网URL(比如
https://xxx-xxx-xxx.twil.io/alert-sms) - 在监控系统中配置告警触发规则:向该URL发送POST请求,可携带
alertMsg参数传递自定义告警内容
补充说明
- Twilio Functions是全托管服务,无需自行搭建服务器,适合快速落地需求
- 若需超大规模批量发送,可改用Twilio的批量短信API优化性能,小场景用上述循环逻辑足够
- 监控系统的POST请求如果是JSON格式,Twilio Functions会自动解析参数到
event对象中
内容的提问来源于stack exchange,提问作者mickg
相关产品推荐
相关产品推荐

