使用Twilio Studio的Function Widget发送WhatsApp位置失败求助
问题排查与修复方案
核心问题
你代码里使用的persistentAction参数不适用于WhatsApp渠道发送位置,Twilio针对WhatsApp发送位置需要使用mediaUrl参数,同时要严格遵循格式要求。
修复后的代码
exports.handler = function(context, event, callback) { const twilioClient = context.getTwilioClient(); const from = event.From || 'whatsapp:+14155238886'; const to = event.To || 'whatsapp:+556181584246'; // 可添加位置说明文本,也可以设为空字符串 const body = event.Body || '共享位置:'; // 注意geo格式:经纬度之间不能有空格 const mediaUrl = 'geo:-1.232453,36.878987'; twilioClient.messages .create({ to: to, from: from, body: body, mediaUrl: mediaUrl }) .then((result) => { console.log('消息发送成功,SID:', result.sid); callback(null, { success: true, messageSid: result.sid }); }) .catch((error) => { console.error('发送失败:', error); callback(error); }); };
关键注意事项
- 参数替换:必须用
mediaUrl替代persistentAction,这是Twilio WhatsApp API指定的位置发送参数。 - 格式规范:
geo:后缀的经纬度之间不能有空格,否则会被判定为无效格式。 - 权限验证:确认你的Twilio号码已开通WhatsApp功能,目标号码已完成WhatsApp沙箱验证(测试环境下)。
内容的提问来源于stack exchange,提问作者Alessandro Queiroz
相关产品推荐
相关产品推荐

