node.js - API.ai/Dialogflow 基本文本请求不起作用

标签 node.js dialogflow-es

const API_AI_TOKEN = 'my token here';
const apiAiClient = require('apiai')(API_AI_TOKEN);

const apiaiSession = apiAiClient.textRequest('hi', {sessionId: 'test'});
apiaiSession.on('response', (response) => {
const result = response.result.fulfillment.speech;
console.log(result);
});
apiaiSession.on('error', error => console.log(error));

我在 Dialogflow 闲聊中配置并进行了测试,我应该收到“嘿”回复,但我得到 nothing.. 我尝试了客户端和开发 token

最佳答案

Problem is i'm obligated to end session with apiaiSession.end()

您没有义务结束 session 。您正在做的事情不是 session ,而是请求。

如果没有.end(),请求永远不会完全发送,因此您永远不会收到响应。

I tried both client and dev token

您必须使用开发 token 。

<小时/>

代码应该是这样的:

const API_AI_TOKEN = 'my token here'; // You need dev token
const apiAiClient = require('apiai')(API_AI_TOKEN);

const request = apiAiClient.textRequest('hi', {sessionId: 'test'});

request.on('response', (response) => {
    const result = response.result.fulfillment.speech;
    console.log(result);
});

request.on('error', error => console.log(error));

request.end(); // This.

session 由 Dialogflow 管理,因此只要您为每次用户交互发送相同的 sessionId 就可以了。

来自docs :

User entities and sessions last 30 minutes.

关于node.js - API.ai/Dialogflow 基本文本请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49762933/

相关文章:

javascript - 使用 Nodejs 的 SendGrid 模板中的变量替换不起作用

python - 我可以获得 python 的完整简单 DialogFlow 示例(当前版本 v2)吗?

javascript - 无法使用 webpack 将 NODE_ENV 设置为生产环境

node.js - 一个 NodeJS 服务器中有两个 Express "app"?

node.js - 无法安装@types包: Host key verification failed

node.js - 从函数返回mongojs查询结果

javascript - 谷歌助手的事实应用程序

actions-on-google - Google Assistant 通过 API.AI 进行高级响应

java - 后续意图更新时出现 Dialogflow INVALID_ARGUMENT 错误

actions-on-google - 如何在没有 SDK 的情况下在 Actions on Google 中请求许可?