我的服务在请求后将异步响应发送回 api.ai,该响应显示在用户界面(Slack、Skype 等)上。
但是在请求的操作完成后(5秒后),我无法向界面发送响应。
const apiai = require('apiai');
module.exports = (server, config) => {
const app = apiai('<Client access token>');
server.post('/', (req, resp) => {
let body = '';
req.on('data', function(data) {
body += data;
});
req.on('end', function() {
body = JSON.parse(body);
resp.send({
speech: 'Please wait...',
});
const sessionId = body.sessionId;
setTimeout(() => {
const evt = app.eventRequest({
name: 'testevent', data: { },
}, { sessionId });
evt.on('response', resp2 => {
debugger;
});
evt.on('error', err => {
debugger;
});
evt.end();
}, 10 * 1000);
});
});
};
在对象resp2
中,我看到了result.fulfillment.speech
应该发送到界面的响应文本。但事实并非如此。
有没有办法做到这一点?