使用Azure Web功能接收Twilio SMS消息

我正在尝试获取Azure Web功能来接收Twilio SMS消息-失败了!

我已经创建了一个Web功能来成功发送SMS消息-现在我想听并响应响应.

我已经按照以下步骤设置了网络功能.目前它非常简单,应该模仿原始消息:

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");

            var data = await req.Content.ReadAsStringAsync();
            var formValues = data.Split('&')
                .Select(value => value.Split('='))
                .ToDictionary(pair => Uri.UnescapeDataString(pair[0]).Replace("+", " "),
                              pair => Uri.UnescapeDataString(pair[1]).Replace("+", " "));

            // Perform calculations, API lookups, etc. here

            var response = new MessagingResponse()
                .Message($"You said: {formValues["Body"]}");
            var twiml = response.ToString();
            twiml = twiml.Replace("utf-16", "utf-8");

            return new HttpResponseMessage
            {
                Content = new StringContent(twiml, Encoding.UTF8, "application/xml")
            };
        }

在Twilio中,我已将电话配置为使用网络挂钩:

enter image description here

我已经部署了Web功能,但是当我尝试通过发送消息进行测试时,在Twilio日志中出现以下错误:

11200尝试检索此URL的内容时失败
消息不支持的媒体类型
消息:WebHook请求必须包含格式为JSON的实体主体.

有谁有解决此错误的经验吗?

最佳答案
我刚开始使用Twilio的SMS服务.在Azure门户中,如果转到该功能,然后转到“集成”,则将模式更改为“标准”.这将强制Azure函数返回正常的HTTP响应,并且您可以控制内容类型.如果您使用application / xml,它将正常工作.

转载注明原文:使用Azure Web功能接收Twilio SMS消息 - 代码日志