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

时间:2018-04-10 21:13:12

标签: node.js dialogflow

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.. 我尝试了客户端和开发令牌

2 个答案:

答案 0 :(得分:0)

问题是我有义务用apiaiSession.end结束会话()

答案 1 :(得分:0)

  

问题是我有义务用apiaiSession.end()

结束会话

您没有义务结束会话。你正在做什么,这不是一个会议,这是一个请求。

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

  

我尝试了客户端和开发令牌

您必须使用dev令牌。

以下是代码的编写方式:

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.

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

来自docs

  

用户实体和会话持续30分钟。