2017-06-21 57 views
1

在用戶界面(Slack,Skype等)上顯示請求後,我的服務正在將異步響應發送回api.ai。通過api.ai提供服務響應5秒後

但是我無法在請求的操作完成後(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有哪些應該被送到該接口的響應文本。但事實並非如此。

有沒有辦法做到這一點?

回答

0

您問題中的代碼使用Api.ai的API,它是用來將您的Api.ai代理嵌入到您自己的應用程序中的。這個背後的意圖是讓你實現/使用你自己的聊天/消息系統,然後通過這個API向你的用戶發送與你的用戶對話的事件和文本到Api.ai,它將爲你提供響應(如你所見)和那麼你可以使用來自API的響應,併爲您的用戶在迴應自己的聊天/通訊系統:像您有興趣讓您的Api.ai劑聊天平臺上直接集成像鬆弛和Skype https://docs.api.ai/docs/query

這聽起來。如果是這種情況,你應該看看Api.ai的集成文檔:https://docs.api.ai/docs/integrations

相關問題