使用 Twilio 在 .net 核心 web api 中接收短信
Receive SMS in .net core webapi uinsg Twilio
我正在使用以下代码接收发送到我的 .net 核心中的 Twilio 虚拟号码的短信 api。我的网络钩子 api 代码是这样的,
namespace MyNameSpace.Controllers
{
[Route(Routing.CONTROLLER_PREFIX)]
public class MfaController : MyControllerBase
{
[HttpPost]
[Route(Constants.Save)]
[Produces("application/xml")]
public ActionResult SaveText(TextMessage TextInfo)
{
// My save logic here
return Ok();
}
}
}
当我在本地测试代码时,我在 fiddler 和 postman 中得到了 200 - Ok 响应。但是我在 Twilio 控制台(调试器)中遇到错误
{
"callbackResult": "SUCCESS",
"statusCode": 502,
"body": "VHd...............",
"cookies": [],
"headers": {
"Transfer-Encoding": [
"chunked"
],
"X-Cache": [
"MISS from ip-XXX-18-0-xXx"
],
"X-Cache-Lookup": [
"MISS from ip-XXX-18-0-XXX:3128"
],
"X-Twilio-Reason": [
"Response does not contain content type"
],
"Date": [
"Thu, 29 Mar 2018 16:08:10 GMT"
],
"Content-Type": [
"text/html"
]
}
}
API 的响应类型应该是什么?我不需要给用户发送回复消息,只需要保存短信即可。
此处为 Twilio 开发人员布道师...
使用您共享的示例代码,您似乎正在尝试接收文本正文,保存它,然后回复 Twilio。假设您使用的是最新版本的 Twilio Nuget 程序包和来自 Twilio 的 HTTP Post 请求,您可以使用以下代码来执行此操作,我们的文档 here.[=13 中也有这些代码=]
public ActionResult SaveText([FromBody] string Body)
{
// Put your save logic here
// Respond to Twilio
var response = new MessagingResponse();
response.Message("");
return new ContentResult { Content=response.ToString(), ContentType="application/xml"};
}
以上代码使用参数绑定从 POST 请求中获取正文。如果您愿意,还可以包含 Twilio.AspNet.Mvc 帮助程序库,this blog post 使用它来使代码更简洁、更易于阅读。
最后一点:我建议发送确认信息,让发件人知道您的应用已收到邮件。让我知道这是否有帮助。
我正在使用以下代码接收发送到我的 .net 核心中的 Twilio 虚拟号码的短信 api。我的网络钩子 api 代码是这样的,
namespace MyNameSpace.Controllers
{
[Route(Routing.CONTROLLER_PREFIX)]
public class MfaController : MyControllerBase
{
[HttpPost]
[Route(Constants.Save)]
[Produces("application/xml")]
public ActionResult SaveText(TextMessage TextInfo)
{
// My save logic here
return Ok();
}
}
}
当我在本地测试代码时,我在 fiddler 和 postman 中得到了 200 - Ok 响应。但是我在 Twilio 控制台(调试器)中遇到错误
{
"callbackResult": "SUCCESS",
"statusCode": 502,
"body": "VHd...............",
"cookies": [],
"headers": {
"Transfer-Encoding": [
"chunked"
],
"X-Cache": [
"MISS from ip-XXX-18-0-xXx"
],
"X-Cache-Lookup": [
"MISS from ip-XXX-18-0-XXX:3128"
],
"X-Twilio-Reason": [
"Response does not contain content type"
],
"Date": [
"Thu, 29 Mar 2018 16:08:10 GMT"
],
"Content-Type": [
"text/html"
]
}
}
API 的响应类型应该是什么?我不需要给用户发送回复消息,只需要保存短信即可。
此处为 Twilio 开发人员布道师...
使用您共享的示例代码,您似乎正在尝试接收文本正文,保存它,然后回复 Twilio。假设您使用的是最新版本的 Twilio Nuget 程序包和来自 Twilio 的 HTTP Post 请求,您可以使用以下代码来执行此操作,我们的文档 here.[=13 中也有这些代码=]
public ActionResult SaveText([FromBody] string Body)
{
// Put your save logic here
// Respond to Twilio
var response = new MessagingResponse();
response.Message("");
return new ContentResult { Content=response.ToString(), ContentType="application/xml"};
}
以上代码使用参数绑定从 POST 请求中获取正文。如果您愿意,还可以包含 Twilio.AspNet.Mvc 帮助程序库,this blog post 使用它来使代码更简洁、更易于阅读。
最后一点:我建议发送确认信息,让发件人知道您的应用已收到邮件。让我知道这是否有帮助。