【问题标题】:Failed to parse Dialogflow response into AppResponse because of empty speech response由于语音响应为空,无法将 Dialogflow 响应解析为 AppResponse
【发布时间】:2018-11-14 23:48:22
【问题描述】:

我正在尝试为我的 AoG 代理实现一个新的欢迎意图,但我不断收到“由于语音响应为空,无法将 Dialogflow 响应解析为 AppResponse”,即使其余部分看起来都不错。

    return new Promise(function (resolve, reject) {
    if(userId != null){

        service.getCustomerData(userId, accessToken).then(customerData =>{
            var name;
            let conv = agent.conv();
            name = customerData.item.name;

            conv.ask('We are logged in on ' + name);
            agent.add(conv);
            resolve();
        }, error => {
            errorHandler(agent,error, resolve);
        });


    }else {
        agent.add('We are not logged in');
    }
    resolve();
});

这里有什么提示或技巧吗?使用 API V2

【问题讨论】:

  • 你能分享更多你的代码sn-p吗?你在用dialogflow-fulfillment吗?为什么要在 sn-p 的底部返回 resolve?

标签: node.js dialogflow-es actions-on-google


【解决方案1】:

有关调试此问题的提示或技巧,我建议您查看以下两个帖子:

您没有发布整个函数,这在这种情况下会有所帮助,但我的猜测是您正在导致错误。检查您的日志将确认是否存在实际错误。

我的猜测是这组线是问题所在:

        let conv = agent.conv();
        name = customerData.item.name;

        conv.ask('We are logged in on ' + name);
        agent.add(conv);

具体来说,我不认为你可以调用add() 并将对话对象传递给它。目前尚不清楚您为什么要处理 conv.add() 而不是直接使用 agent.ask()

【讨论】:

    【解决方案2】:

    对于其他可能偶然发现此问题的人:

    对我来说,我遇到了这个问题,因为我从未添加过相应的 app.intent()。我复制粘贴了一个具有旧意图名称的旧意图 app.intent('favorite color', // ...etc),而新意图具有不同的名称(在我的情况下为 app.intent('favorite movie', // ...etc))。

    【讨论】:

      猜你喜欢
      • 2019-01-27
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多