Echo Dot 无法请求我的技能,尽管它在 Web 界面中有效

EchoDot is unable to request my skill tough it works in web interface

我刚刚尝试在 C# 中为 Alexa 开发一项技能。它只是出于一个简单的意图,带有一个名称槽,并说“你好{name}”作为回应。

我在 visual studio 中创建了一个 AWS Lambda 项目,引用 alexa skills for .Net core by Tim Heuer 并实现了意图:

var name = intentRequest.Intent.Slots["name"].Value;
var speech = new Alexa.NET.Response.SsmlOutputSpeech {Ssml = $"Hallo {name}. Schön dich zu sehen."};

response = ResponseBuilder.Tell(speech);
response.Response.ShouldEndSession = true;

我通过 Visual Studio AWS 工具包将其发布到我的 AWS Lambdas 中,将 Alexa 添加为触发器并创建了 Alexa 技能并将其引用到 lambdas arn。

我为自己的回声点设备启用了该技能,我也可以在我的应用程序中看到它存在。如果我现在要求 echo dot 启动该技能,我只会收到一条错误消息:“在请求的技能响应期间发生错误”(从德语翻译)。但如果我在亚马逊的 Alexa 开发者网站上测试这项技能,一切正常。如果我在 visual studio 本身测试它,也是一样。

我的 echo dot(也是节点 js 琐事游戏示例)的一般工作技能。什么可能导致此问题?这是我的 lambda 函数的错误吗?

我终于发现问题出在 SsmlOutputSpeech 上。似乎您必须在 Ssml 语法中填写字符串,即使在相关的 GitHub 存储库中也没有这样做。我刚搬到 PlainTextOutputSpeech,因为这对我的情况来说已经足够了。