如何解决Twilio语音<Gather>-DotNetCore-Digits参数始终为null
我正在尝试执行以下操作:
- 致电twilio#。
- 从用户那里收集数字。
- 过程数字。
我正在使用DotNetCore webapi。
我遇到的问题是,当twilio发布到Gather action uri时,Digits始终为null。我在twilio调试控制台中确认Digits参数确实有一个值。
这是我的控制器的简化版本:
[ApiController]
[Route("api/[controller]")]
public class VoiceController : ControllerBase
{
[HttpPost]
public IActionResult Post()
{
var response = new VoiceResponse();
var say = new Say("Please type your meeting password.");
var gather = new Gather(action: "placeholderURI/JoinMeeting");
response.Append(gather).Append(say);
response.Redirect("placeholderURI");
return Content(response.ToString(),"application/xml");
}
[HttpPost("JoinMeeting")]
public IActionResult JoinMeeting(string Digits)
{
var response = new VoiceResponse();
if(Digits != null){
//do stuff
}else{
var say = new Say("WRONG");
response.Append(say).Redirect("placeholderURI");
}
return Content(response.ToString(),"application/xml");
}
}
此外,我可以将调试控制台中的RAW参数复制到邮递员的参数中,然后成功地发布到我的端点。
我错过了什么吗?也许对JoinMeeting方法有一些修饰?
解决方法
我没有阅读手册...
在twilio POST上,参数将在正文中。
在twilio GET上,参数将在查询字符串中。
我将第二种方法更新为GET并确保指定了该方法:
var gather = new Gather(action: "uriPlaceholder",method: HttpMethods.Get);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。