【发布时间】:2019-05-20 23:29:52
【问题描述】:
我在 AWS Lambda 上运行了一个 c# 服务,FunctionHandler 正在正确接收请求并区分 Launch 类型和 Intent 类型。就像标题一样,我如何才能得到用户实际输入的内容?
意图称为“swap_screens”,示例话语是“switch screen to {display}”,自定义插槽有“computer”或“television”选项。
如何选择“电脑”或“电视”?
private SkillResponse skillResponse = null;
/// <summary>
/// A simple function that takes a string and does a ToUpper
/// </summary>
/// <param name="input"></param>
/// <param name="context"></param>
/// <returns></returns>
public SkillResponse FunctionHandler(SkillRequest input, ILambdaContext ctx)
{
if (input.GetRequestType() == typeof(LaunchRequest))
{
skillResponse = LaunchRequestHandler(input);
}
else if (input.GetRequestType() == typeof(IntentRequest))
{
skillResponse = IntentRequestHandler(input);
}
return skillResponse;
}
private SkillResponse LaunchRequestHandler(SkillRequest skillRequest)
{
var skillResponse = new SkillResponse
{
Version = "1.0",
Response = new ResponseBody()
};
skillResponse.Response.OutputSpeech = new PlainTextOutputSpeech
{
Text = "Launch."
};
return skillResponse;
}
private SkillResponse IntentRequestHandler(SkillRequest skillRequest)
{
var skillResponse = new SkillResponse
{
Version = "1.0",
Response = new ResponseBody()
};
skillResponse.Response.OutputSpeech = new PlainTextOutputSpeech
{
Text = "Intent."
};
return skillResponse;
}
谢谢。
【问题讨论】:
-
像这样;
var intentRequest = (IntentRequest)skillRequest.Request; string strSlotValue = intentRequest.Intent.Slots["slot name"].Value;
标签: c# amazon-web-services aws-lambda alexa alexa-skills-kit