通过 Twilio 消息服务向指定号码发送短信。
配置
- Phone Number From — 发送方Twilio号码或Messaging Service SID。须为E.164格式(如
+19995550123)。该字段支持 templatization。 - Phone Numbers To — 接收短信的号码列表(逗号分隔)。该字段支持 templatization。
- Twilio Account SID — Twilio账户标识。
- Twilio Account Token — Twilio认证令牌。
JSON Schema
输出消息格式
节点不修改入站消息。消息数据和metadata均原样传递给链中下一节点。
消息确认行为
节点的消息确认行为由环境变量 ACTORS_RULE_EXTERNAL_NODE_FORCE_ACK 控制:
- 设为
true— 入站消息在接收后立即确认并标记为成功处理,创建副本。短信发送异步执行,完成后副本入队交由下一节点处理。 - 设为
false(默认)— 入站消息在整个短信发送过程中保持处理中状态。短信操作完成后将消息传递给下一节点。
消息处理算法
- 节点处理from模板,从入站消息数据和metadata中提取发送方号码。
- 节点处理to模板,从入站消息数据和metadata中提取目标号码。
- 短信内容直接取自入站消息data payload。去除首尾引号,并将转义换行符(
\n)转换为实际换行。 - 通过Twilio异步向每个指定号码发送短信。
- 处理完成时:
- Success:所有短信成功发送后将消息路由到
Success连接。 - Failure:若任一条短信发送失败,将消息路由到
Failure连接。
- Success:所有短信成功发送后将消息路由到
输出连接
- Success
- 短信已成功发送到所有指定号码。
- Failure
- 发送短信时发生意外错误。
示例
示例1 — 发送alarm通知
设备触发alarm时发送短信告警。
入站消息
数据:
1
"Device Temperature Sensor 01 has triggered HIGH_TEMPERATURE alarm"
Metadata:
1
2
3
4
5
6
{
"deviceName": "Temperature Sensor 01",
"alarmType": "HIGH_TEMPERATURE",
"userPhone": "+15551234567",
"twilioNumber": "+15559876543"
}
节点配置
1
2
3
4
5
6
{
"numberFrom": "${twilioNumber}",
"numbersTo": "${userPhone}",
"accountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"accountToken": "your_auth_token_here"
}
出站消息
数据:未更改。
Metadata:未更改。
经 Success 连接路由。
结果
已从 +15559876543向 +15551234567发送短信:
1
Device Temperature Sensor 01 has triggered HIGH_TEMPERATURE alarm
示例2 — 多收件人
向多个号码发送短信通知。
入站消息
数据:
1
"Critical: Water leak detected in Warehouse A"
Metadata:
1
2
3
4
{
"emergencyContacts": "+15551234567,+15559876543,+15555555555",
"companyPhone": "+15551111111"
}
节点配置
1
2
3
4
5
6
{
"numberFrom": "${companyPhone}",
"numbersTo": "${emergencyContacts}",
"accountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"accountToken": "your_auth_token_here"
}
出站消息
数据:未更改。
Metadata:未更改。
经 Success 连接路由。
结果
已从 +15551111111向三位收件人(+15551234567、+15559876543、+15555555555)发送短信:
1
Critical: Water leak detected in Warehouse A