调用Twilio usAppToPerson.create()报MessageFlow参数缺失错误求助
调用Twilio usAppToPerson.create()接口时提示缺少MessageFlow参数的问题
调用Twilio的client.messaging.v1.services().usAppToPerson.create()接口时,遇到以下错误:
RestException [Error]: Missing required parameter MessageFlow in the post body, Status: 400, Code: 20001,
我已经尝试了多种messageFlow相关的参数命名格式,但问题始终没解决。我的代码如下:
const serviceData = { message_flow: "REMOVED-THIS-STRING-FOR-STACKOVERFLOW", description: "REMOVED-THIS-STRING-FOR-STACKOVERFLOW", messageSamples: ["REMOVED-THIS-STRING-FOR-STACKOVERFLOW"], usAppToPersonUsecase: "SOLE_PROPRIETOR", hasEmbeddedLinks: true, hasEmbeddedPhone: true, brandRegistrationSid: brandSid, }; client.messaging.v1.services(service.sid) .usAppToPerson .create( serviceData, )
尝试过的参数命名格式包括:
messageFlow:MessageFlow:messageflow:Message_Flow:"MessageFlow":"messageFlow":"message_flow":
求有相关经验的开发者帮忙解决!
解决思路
我之前碰到过类似的问题,给你几个排查方向:
- 先确认你传入的
message_flow值是不是有效的Message Flow SID——得是Twilio生成的那种MG开头的字符串,随便填的字符串肯定不行,哪怕参数名对了也会触发类似错误。 - 检查你的Twilio SDK版本,旧版本的SDK可能在参数映射上有bug,直接升级到最新版试试:
npm update twilio
- 要是升级后还是不行,别死磕SDK了,直接用HTTP请求测一遍,看看是不是SDK的参数转换有问题:
// 用fetch发起请求的示例 fetch(`https://messaging.twilio.com/v1/Services/${service.sid}/UsAppToPerson`, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Basic ' + btoa('你的Twilio Account SID:你的Twilio Auth Token') }, body: new URLSearchParams({ 'MessageFlow': '你的Message Flow SID', 'Description': '你的描述内容', 'MessageSamples': '示例消息1,示例消息2', 'UsAppToPersonUsecase': 'SOLE_PROPRIETOR', 'HasEmbeddedLinks': 'true', 'HasEmbeddedPhone': 'true', 'BrandRegistrationSid': brandSid }) })
如果直接HTTP请求成功,那就是SDK的参数映射问题,要么等Twilio修复,要么暂时用HTTP请求替代SDK调用。
内容的提问来源于stack exchange,提问作者Garrett Walter
相关产品推荐
相关产品推荐

