Действие Collect в Задаче Twilio заканчивается перенаправлением на URL, который вызывает API, написанный на C # с использованием .NET Core. Код отвечает ответом TwiML, который отправляется обратно в виде XML. Тем не менее, запрос ожидает JSON. В результате на консоли Twilio появляется сообщение о плохой реакции JSON.
Я просмотрел много вопросов о переполнении стека, искал документы Twilio, но не могу найти ничего, что могло бы помочь решить проблему. Я использую Visual Studio 2019, .Net Core 3.0 и самый последний Twilio C # SDK.
Вызов API выполняется с помощью этого фрагмента действия Twilio в задаче (Создано с использованием Twilio Studio:
"on_complete": {
"redirect": {
"method": "POST",
"uri": "https://wksclaims.ngrok.io/CreateClaim"
}
}
Здесь находится контроллер C # CreateClaim
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Twilio.TwiML;
using Twilio.AspNet.Core;
using Twilio.AspNet.Common;
using Twilio.TwiML.Voice;
using Twilio.TwiML.m
namespace TwilioDemo.Controllers
{
public class CreateClaimController : TwilioController
{
[HttpPost]
public TwiMLResult Index(SmsRequest request)
{
var response = new VoiceResponse();
response.SetOption.HttpContext(JsonResult)
response.Say("Thank you for using the claims bot today. You should receive a confirmation call or email with your new claim number shortly.")
.Pause(1)
.Say("Hope you have a good day.")
.Pause(1)
.Say("Goodbye.");
return TwiML(response);
}
}
}
когда ответ получен ботом автопилота Twilio, вызывающий абонент должен здесь получить резонанс, и вызов должен завершиться. Вместо этого вызов просто завершается.
Отладчик показывает ошибку 90100 Недопустимый ответ Json, а детали показываютответ в виде XML-кода. Заголовок запроса также показывает, что он ожидает ответа json.
Как заставить мой код возвращать Json?