如何使用Twilio Notify实现批量短信的动态个性化内容?
实现Twilio批量动态内容短信的解决方案
核心问题说明
Twilio Notify服务的全局body参数无法直接为每个接收者单独设置个性化内容,需要通过以下两种方式解决:
方法1:使用Twilio Notify模板变量(批量API调用)
这种方式适合批量场景,只需一次API调用即可处理多条个性化短信,但需要先在Twilio后台配置模板:
在Twilio控制台创建短信模板
模板内容设置为:Hi {{first_name}}, How are you welcome to panel,记录生成的模板SID。修改代码生成带属性的绑定
确保从数据库获取的phone_nos数组包含每个号码对应的first_name字段,然后在绑定中携带用户属性:$binding = array(); foreach ($phone_nos as $item) { $binding[] = json_encode([ "binding_type" => "sms", "address" => $item['phone_no'], "attributes" => json_encode(["first_name" => $item['first_name']]) ]); } // 调用Notify API时指定模板SID $notification = $twilio->notify->v1->services($serviceSid) ->notifications->create([ "toBinding" => $binding, "templateSid" => "你的模板SID", // 替换为控制台生成的模板SID "sms" => [ "status_callback" => AURL .'GroupSms/bulk_sms_status_callback' ], ]);
方法2:单独发送每条短信(高度灵活)
如果不想依赖模板,直接循环每个用户单独调用短信API,内容完全自定义:
foreach ($phone_nos as $item) { $message = $twilio->messages->create( $item['phone_no'], // 接收号码 [ "from" => "你的Twilio发送号码", // 替换为你的Twilio号码 "body" => "Hi {$item['first_name']}, How are you welcome to panel", "statusCallback" => AURL .'GroupSms/bulk_sms_status_callback' ] ); // 可选:记录$message->sid用于后续状态查询 }
注意事项
- 确认
phone_nos数组包含phone_no和first_name字段,数据库查询时需同时取出这两个字段 - 使用模板时,需确保模板通过Twilio合规审核
- 单独发送时,注意Twilio的API速率限制,批量发送可添加简单的延迟或重试逻辑
内容的提问来源于stack exchange,提问作者NomanJaved
相关产品推荐
相关产品推荐

