API.ai / Dialogflow 基本文本请求不起作用
API.ai / Dialogflow basic text request not working
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 small talk 中进行了配置并进行了测试,我应该会收到 "Hey",但我收到 nothing..
我尝试了客户端和开发令牌
问题是我必须用 apiaiSession.end()
结束会话
Problem is i'm obligated to end session with apiaiSession.end()
您没有义务结束会话。你在做什么,它不是一个会话,它是一个请求。
没有 .end()
请求永远不会完全发送,因此您永远不会得到回复。
I tried both client and dev 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.
会话由 Dialogflow 管理,因此只要您为每次用户交互发送相同的 sessionId
,就没问题。
来自docs:
User entities and sessions last 30 minutes.
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 small talk 中进行了配置并进行了测试,我应该会收到 "Hey",但我收到 nothing.. 我尝试了客户端和开发令牌
问题是我必须用 apiaiSession.end()
结束会话Problem is i'm obligated to end session with apiaiSession.end()
您没有义务结束会话。你在做什么,它不是一个会话,它是一个请求。
没有 .end()
请求永远不会完全发送,因此您永远不会得到回复。
I tried both client and dev 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.
会话由 Dialogflow 管理,因此只要您为每次用户交互发送相同的 sessionId
,就没问题。
来自docs:
User entities and sessions last 30 minutes.