API.AI to ChatFuel connection

node v8.17.0
version: 1.0.0
endpointsharetweet
Connecting API.AI to Chatfuel
let { API_AI_KEY } = process.env; let URL = require('url'); let API_AI = require('apiai'); let app = API_AI(API_AI_KEY); let randomize = (arr) => arr[Math.floor(Math.random() * arr.length)]; let sendResponse = ({ response, message }) => { response.writeHead(200, { 'Content-Type': 'application/json' }); response.end( JSON.stringify(message) ); } let createTextMsg = (text) => { return { messages: [{ text }] }; } let handleResponse = (response) => ({ result }) => { let message; if (result.source === 'agent') { let randomMsg = randomize(result.fulfillment.messages); message = randomMsg.payload ? randomMsg.payload : createTextMsg(randomMsg.speech); } else if (result.source === 'domains') { message = createTextMsg(result.fulfillment.speech); } sendResponse({ response, message }); } let handleError = (response) => (error) => { let message = { error }; sendResponse({ response, message }); } exports.endpoint = function(request, response) { var query = URL.parse(request.url, true).query; var request = app.textRequest(query.queryString, { sessionId: Math.random().toString().slice(2), contexts: [{ name: query.context || 'DEFAULT', parameters: query, }] }); request.on('response', handleResponse(response)); request.on('error', handleError(response)); request.end(); }
Loading…

no comments

    sign in to comment