Alexa 技能响应 抱歉,我无法按照您的要求进行操作。请再试一次

Posted

技术标签:

【中文标题】Alexa 技能响应 抱歉,我无法按照您的要求进行操作。请再试一次【英文标题】:Alexa skill responding Sorry, I had trouble doing what you asked. Please try again 【发布时间】:2021-02-01 20:26:06 【问题描述】:
const FactIntentHandler = 
        canHandle(handlerInput) 
    const request = handlerInput.requestEnvelope.request;
    return (request.type === 'IntentRequest' && request.intent.name === 'GetFactIntent');
        //&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'GetFactIntent';
,
handle(handlerInput) 
    var newFact = pitFile.facts[Math.floor(Math.random() * pitFile.fact.length)];//search for fact to return in random order 000561
    var factResult = newFact.text; // store fact 000561
    //speakoutput is a var and not a const because we want it to change 000561
    var speakOutput = "Here's why we love pits:" + factResult;

    return handlerInput.responseBuilder
        .speak(speakOutput)
        //.reprompt(speakOutput)
        .getResponse();
  
;

这是我的代码,我使用的是 hello world 模板。我编辑了内置的 helloworld 意图,但是当我调用 getfactintent 时,我收到一条错误消息。

【问题讨论】:

【参考方案1】:

如果这是一项 Alexa 托管技能,请尝试代码面板左下方的 CloudWatch 链接。如果有错误消息,则日志应包含错误消息。

当你抓取随机事实时,你使用一个数组“pitFile.fact”,但是在随机数生成中获取“pitFile.facts”的长度。人们会认为这些应该是相同的。

由于它们不是,您可能会收到“无法读取未定义的属性长度”或 pitFile.fact 不是数组的错误。这将显示在 CloudWatch 日志中。

【讨论】:

【参考方案2】:

你是怎么问的?真实的还是通过技能控制台中的“测试”选项卡?

如果真实:尝试在技能控制台中执行相同操作并测试您的技能。您将在右侧的 JSON 响应中看到响应,并且可能会看到更详细的错误说明。

【讨论】:

我通过测试选项卡询问,搜索错误消息没有 在修改右侧面板给出的输出时,我注意到 Alexa 正在将启动请求注册为会话结束请求我该如何停止??【参考方案3】:

我发现了错误,第 8 行的代码 var newFact = pitFile.facts[Math.floor(Math.random() * pitFile.fact.length)];//搜索fact以随机顺序返回000561

“pitFile.fact.length”实际上应该是“pitFile.facts.length”

【讨论】:

以上是关于Alexa 技能响应 抱歉,我无法按照您的要求进行操作。请再试一次的主要内容,如果未能解决你的问题,请参考以下文章

在 Echo 上测试时无法识别 Alexa Skill

Alexa(智能家居技能)确定设备是否脱机。

如何保持alexa技能开放?

聆听 Alexa 技能包中的响应

Alexa没有找到我的技能

如何为 Alexa 技能意图响应获取和使用确认“是”或“否”