我正在尝试使用Twilio API和webhook接收味精正文。当我在订阅的号码上发送消息但消息正文为null时,webhook服务被击中。
下面的C#代码段,即使我发送“ hello”,在这种情况下requestBody始终为空
TwilioClient.Init(accountSid, authToken);
var requestBody = Request.Form["Body"];
var response = new MessagingResponse();
if (requestBody == "hello")
{
response.Message("Hi!");
}
else if (requestBody == "bye")
{
response.Message("Goodbye");
}
return TwiML(response);
答案 0 :(得分:0)
特维里奥传教士在这里....
我查看了您的问题,认为可能有2种可能的情况。
首先,似乎行var requestBody = Request.Form["Body"];
可能无法正确解析POST请求正文。您可能需要调试并确认Request.Form["Body"]
实际上确实保留了正在发送的消息正文。
这里的第二件事是,如果if / else if条件未评估为true,则没有默认情况。因此,我为您编写了一个样本,我们在7/30 Twitch流(www.twitch.tv/cldubya)上进行了测试。它是为ASP.NET Core编写的,并使用参数绑定来获取消息正文。看看下面。
[HttpPost]
public IActionResult Post([FromForm] string body)
{
var requestBody = body;
var response = new MessagingResponse();
if (string.Equals(requestBody,"hello",StringComparison.CurrentCultureIgnoreCase))
{
response.Message("Hi!");
}
else if (string.Equals(requestBody, "bye", StringComparison.CurrentCultureIgnoreCase))
{
response.Message("Goodbye");
}
// adding a default message in the event that the if/else if condition doesn't evaluate to true
else
{
response.Message("Couldn't determine what to respond with");
}
return new ContentResult { Content = response.ToString(), ContentType = "application/xml", StatusCode = 200 };
}
看看,让我知道您的想法。