【问题标题】:Receive SMS in .net core webapi uinsg Twilio使用 Twilio 在 .net core web api 中接收短信
【发布时间】:2018-03-29 16:13:30
【问题描述】:

我正在使用以下代码在我的 .net 核心 api 中接收发送到 Twilio 虚拟号码的短信。我的 web hook 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();
        }
    }
}

当我在本地测试代码时,我在提琴手和邮递员中得到 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 的响应类型应该是什么?我不需要给用户发送回复消息,只需要保存短信。

【问题讨论】:

  • 尝试返回有效的XML,内容类型不应该是"text/html"应该是"text/xml"
  • 我添加了以下代码以返回 xml 响应,但它没有帮助。 var response = new HttpResponseMessage { Content = new StringContent("", Encoding.UTF8, "text/xml"), StatusCode = HttpStatusCode.OK } 返回响应;

标签: twilio asp.net-core-webapi twilio-api twilio-functions


【解决方案1】:

这里是 Twilio 开发者宣传员...

使用您共享的示例代码,您似乎正在尝试接收文本正文,将其保存,然后响应 Twilio。假设您使用的是最新版本的 Twilio Nuget 包和来自 Twilio 的 HTTP Post 请求,您可以使用以下代码来执行此操作,我们的文档 here 中也有这些代码。

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 请求中获取正文。如果您愿意,您还可以包含 this blog post 使用的 Twilio.AspNet.Mvc 帮助程序库,以使代码更清晰、更易于阅读。

最后一点:我建议发送确认信息,让发件人知道您的应用已收到消息。让我知道这是否有帮助。

【讨论】:

  • 这确实有帮助,但在这里我们会收到来自自动化服务的消息。所以我们不需要回复文本。我认为响应正文为空,因此 Twilio 将其标记为错误“必须指定消息正文” - 有没有办法清除此错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多