首页 > 解决方案 > 为什么 conv.add 在使用 API 时 console.log 不起作用

问题描述

//编辑:已解决。下面的代码显示了我更改的代码,它现在可以工作了。

当我使用 agent.add 时,console.log 没有显示任何内容。

const { conversation } = require('@assistant/conversation');
const functions = require('firebase-functions');
const axios = require('axios').default;
const app = conversation();

var titels = [];

axios.get(`YOUR-API`)
  .then((result)=> {
    titels.push(result.data.categories[0].news[0].title);
    /* result.data.map(wordObj => {
      titels.push(wordObj.categories.news.title);
    });*/ 
  }); 
  
app.handle('rhymeHandler', conv => {
  console.log(titels[0]);
  conv.add(titels[0]); 
});

exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);    

/* for (i = 1; i < 4; i++) {
  conv.add(words[i]);
  } */
  //console.log(words);

有谁可能知道为什么这不起作用?任何帮助,将不胜感激!

标签: javascriptdialogflow-esactions-on-google

解决方案


该问题似乎不会出现在您的异步函数中。尼克发送的代码应该可以工作。所以我认为这与其他事情有关。错误消息告诉我定义了 2 个以上的简单响应,而 Action on Google 无法处理。

我可以看到您在此函数中创建了一个包含多个单词的数组,并且您正在使用conv.add(word). 因此,如果此数组中的字数大于 2,则响应无效。

所以为了解决问题。您应该确保conv.add(word)调用的次数不超过 2 次。

希望这可以帮助!


推荐阅读