Twilio WhatsApp OTP发送失败:Meta模板已审核通过仍报错
问题分析与解决步骤
核心问题
从报错信息来看,你发送的消息内容与Meta审核通过的模板完全不匹配——即使模板已通过审核,Twilio发送WhatsApp模板消息时要求严格遵循模板的格式、变量规则,直接发送自定义文本会触发校验失败。
具体修复方案
改用模板SID调用方式
Twilio发送WhatsApp模板消息不能直接传自定义messageBody,必须使用审核通过的模板SID,并通过变量参数传入动态内容(比如OTP)。修改代码如下:Future<void> sendOtp(String otp, String phoneNumber) async { try { await twilioFlutter.sendWhatsApp( toNumber: '+91$phoneNumber', // 替换为你在Twilio/Meta后台获取的审核通过模板SID contentSid: 'HXxxxxxxxxx', // 按模板变量的顺序传入对应值,比如模板是"Hi, Enter {{1}} to continue",这里传[otp] contentVariables: ['$otp'], ); print('OTP sent successfully'); } catch (e) { print('Failed to send OTP: $e'); } }严格匹配模板细节
- 模板的前缀、后缀、标点符号、变量位置必须和审核通过的版本完全一致,不能有任何修改(比如多一个空格、少一个逗号都会触发报错)。
- 模板中的变量(如
{{1}})必须通过contentVariables数组传入对应值,不能直接写死在文本里。
验证号码与模板的绑定关系
确认你使用的Twilio号码已绑定到Meta审核通过的WhatsApp业务账号,且该号码被授权使用当前模板。先在控制台测试
可以先在Twilio控制台的WhatsApp消息测试工具中,用模板SID+变量发送测试消息,确认能正常发送后再迁移到代码中。
内容的提问来源于stack exchange,提问作者R0512S
相关产品推荐
相关产品推荐

