由于语音响应为空,无法将Dialogflow响应解析为AppResponse

时间:2018-11-14 23:48:22

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

我正在尝试为我的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

2 个答案:

答案 0 :(得分:0)

有关调试此操作的提示或技巧,建议您查看以下两篇文章:

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

我猜这是问题所在:

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

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

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

答案 1 :(得分:0)

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

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