const chatbase = require('@google/chatbase');
app.middleware((conv) => { if (!conv.isHealthCheck) {
let platform = 'AUDIO'; if (conv.screen) { if (conv.voice) { platform = 'SCREEN_VOICE'; } else { platform = 'SCREEN_KEYBOARD'; } }
if (!(conv.intent === 'Default Fallback Intent' || conv.intent === 'No-input')) { chatbase.newMessage(process.env.CHATBASE_KEY, some_user_id) .setAsTypeAgent() .setTimestamp(Date.now().toString()) .setMessage(conv.intent) .setIntent(conv.intent) .setCustomSessionId(conv.id) .setPlatform(platform) .setAsHandled() .send() .then(msg => console.log(msg.getCreateResponse())) .catch(err => console.error(err));
chatbase.newMessage(process.env.CHATBASE_KEY, some_user_id) .setAsTypeUser() .setTimestamp(Date.now().toString()) .setMessage(conv.input.raw) .setCustomSessionId(conv.id) .setPlatform(platform) .setAsHandled() .send() .then(msg => console.log(msg.getCreateResponse())) .catch(err => console.error(err)); } else { chatbase.newMessage(process.env.CHATBASE_KEY, some_user_id) .setAsTypeUser() .setTimestamp(Date.now().toString()) .setMessage(conv.input.raw) .setCustomSessionId(conv.id) .setPlatform(platform) .setAsNotHandled() .send() .then(msg => console.log(msg.getCreateResponse())) .catch(err => console.error(err)); } } });
const request = require('request'); const urlencode = require('urlencode');
const GOOGLE_ANALYTICS_URL = 'https://www.google-analytics.com/collect'; const GOOGLE_ANALYTICS_TRACKING_ID = 'UA-xxxxxxxxx-x'; const VERSION = 'v'; const TRACKING_ID = 'tid'; const CLIENT_ID = 'cid'; const HIT_TYPE = 't'; const EVENT = 'event'; const EVENT_CATEGORY = 'ec'; const EVENT_ACTION = 'ea'; const EVENT_LABEL = 'el'; const COUNT = 'count';
const totalAnalytics = (some_user_id, context, count) => { const options = { url: GOOGLE_ANALYTICS_URL, json: false }; let body = VERSION + '=' + 1; body += '&' + TRACKING_ID + '=' + GOOGLE_ANALYTICS_TRACKING_ID; body += '&' + CLIENT_ID + '=' + some_user_id; body += '&' + HIT_TYPE + '=' + EVENT; body += '&' + EVENT_CATEGORY + '=' + urlencode(context); body += '&' + EVENT_ACTION + '=' + COUNT; body += '&' + EVENT_LABEL + '=' + urlencode(count); options.body = body; request.post(options, (error, response, body) => { if (error) { console.error(`post: ${error}`); return; } console.log(`analytics response: ${response.statusCode}`); }); }
totalAnalytics('anonymous', 'steps', counter);
“MalformedResponse: ‘final_response’ must be set”
“Dialogflow IntentHandler not found for intent:”
app.intent(‘Default Welcome Intent’, conv => {
conv.ask(‘Welcome...’);
});
app.catch((conv, e) => {
console.error(e);
conv.close(‘Oops. Something went wrong.’);
MalformedResponse
expectUserResponse must be false for cancel intent response.
expected_inputs[0].input_prompt.rich_initial_prompt: ‘rich_response’ must contain at least one item.
expected_inputs[0].input_prompt.rich_initial_prompt.items[0].simple_response: ‘display_text’ must be set or ‘ssml’ must have a valid display rendering.