Я очень новичок в диалоговом процессе и WebAPI, и у меня возникли проблемы с простым веб-перехватчиком для выполнения диалогового процесса, написанным на C # и размещенным в Azure. Я использую версию API dialogflow V2.0.
В настоящее время мое выполнение работает и возвращает простой ответ, но не принимает во внимание намерение и параметры. Теперь я пытаюсь проанализировать JSON, чтобы получить намерение выполнить простой выбор и вернуть значение полученных параметров. И это доставляет мне много хлопот. Ссылка на веб-перехватчик, мой код и сообщение об ошибке, возвращаемое в блоке catch, приведены ниже.
public JsonResult Post(string value)
{
try
{
dynamic obj = JsonConvert.DeserializeObject(value);
string Location = string.Empty;
switch (obj.intent.displayName)
{
case "getstock":
Location = obj.outContexts[0].parameters[0].Location;
break;
}
WebhookResponse r = new WebhookResponse();
r.fulfillmentText = string.Format("The stock at {0} is valuing Rs. 31 Lakhs \n And consists of items such as slatwall, grid and new pillar. The detailed list of the same has been email to you", Location);
r.source = "API.AI";
Response.ContentType = "application/json";
return Json(r);
} catch(Exception e)
{
WebhookResponse err = new WebhookResponse();
err.fulfillmentText = e.Message;
return Json(err);
}
}
Сообщение об ошибке:
Value cannot be null.
Parameter name: value
Вышеупомянутая функция вызывается через POST, вы можете использовать POSTMAN, и вы получите ответ JSON.
Кроме того, я использую ASP.Net Web Api с Visual Studio 2017 с контроллерами.
value
. Нам нужно увидеть больше, чтобы понять, что происходит. - person Prisoner   schedule 14.06.2018