Twilio WhatsApp输入指示器API调用失败,求排查缺失参数
解决Twilio WhatsApp输入指示器API调用失败问题
错误原因及必填参数修正
你遇到的invalid or incomplete inbound data in MDR错误,核心问题在于参数名错误和缺少必填参数:
- 参数名错误:你代码里用的
messageId不符合API要求,正确参数名为MessageSid(注意大小写规范)。 - 缺少必填参数:除
MessageSid和channel外,还必须传递以下两个参数:From:你的Twilio WhatsApp号码,格式为whatsapp:+[国家代码][号码](例如whatsapp:+1234567890)To:接收输入指示器的用户WhatsApp号码,格式同样为whatsapp:+[国家代码][号码]
修正后的代码示例
const authString = Buffer .from(`${this._MasterAccountSID}:${this._MasterAccountAuthToken}`) .toString('base64'); const params = new URLSearchParams(); params.append('MessageSid', messageId); // 修正参数名为MessageSid params.append('channel', 'whatsapp'); params.append('From', 'whatsapp:+你的Twilio号码'); // 添加From参数 params.append('To', 'whatsapp:+用户的WhatsApp号码'); // 添加To参数 await axios.post( "https://messaging.twilio.com/v2/Indicators/Typing.json", params.toString(), { headers: { 'Authorization': `Basic ${authString}`, 'Content-Type': 'application/x-www-form-urlencoded' } } );
额外注意事项
From必须使用Twilio官方分配给你的WhatsApp号码,普通号码无法触发输入指示器。To对应的用户号码必须已经和你的Twilio WhatsApp号码有过消息交互,否则API会拒绝请求。
内容的提问来源于stack exchange,提问作者Alon Raskin
相关产品推荐
相关产品推荐

