Skip to content

Unable to receive date an spreadsheet API from Firebase that is connected with Dilaogflow #7

Description

@sanchit892

Unable to receive date an spreadsheet API from Firebase that is connected with Dilaogflow.

Here is my Index.js
"""
'use strict';

const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
const axios = require('axios');
const Twilio = require('twilio');
const nodemailer = require("nodemailer");
const mysql = require('mysql');

//const transporter = nodemailer.createTransport({
// service: 'gmail',
//auth: {
// user: 'EMAIL',
//pass: 'PASSWORD'
//}
//});

process.env.DEBUG = 'dialogflow:debug'; //enables lib debugging statements

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));

function getSpreadsheetData(){
return axios.get('https://sheetdb.io/api/v1/bzg9fw0dmp8ck');
}

function welcome(agent) {
const name = agent.parameters.name;
return getSpreadsheetData().then(res => {
res.data.map(person => {
if(person.Name === name)
agent.add(Here are the details for ${name}. Gender: ${person.Gender}, Home: ${person.Home}, Subject: ${person.Subject}, Activity: ${person.Activity});
});
});
}

function fallback(agent) {
agent.add(I didn't understand);
agent.add(I'm sorry, can you try again?);
}

function feedbackHandler(agent){
/const {
name, email, phone, age
} = agent.parameters;
/
const {
name, email, phone, text
} = agent.parameters;

const data = [{
  Name: name,
  Email: email,
  Phone: phone,
  Feedback: text
}];
console.log(name);
console.log(email);
console.log(phone);
console.log(text);
return axios.post('https://sheet.best/api/sheets/76c728d6-ec36-466d-868a-504793f23dca', data)
.then(res=>{
  console.log("save success");
}).catch(err=>{
  console.log("error",err);
});

}

//function sendEmailHandler(agent){
//const { email, name } = agent.parameters;

//const mailOptions = {
  //  from: "Axlewebtech", // sender address
   // to: email, // list of receivers
   // subject: "Email from chatbot", // Subject line
   // html: `<p> Hello ${name} </p>`

// };

// transporter.sendMail(mailOptions, function (err, info) {
// if(err)
// {
// console.log(err);
// }
//});

// }

// Run the proper function handler based on the matched Dialogflow intent name
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
intentMap.set('feedback', feedbackHandler);
//intentMap.set('sendEmail', sendEmailHandler);
// intentMap.set('your intent name here', yourFunctionHandler);
// intentMap.set('your intent name here', googleAssistantHandler);
agent.handleRequest(intentMap);
});
"""

Here is package.js
"""
{
"name": "dialogflowFirebaseFulfillment",
"description": "This is the default fulfillment for a Dialogflow agents using Cloud Functions for Firebase",
"version": "1.1.1",
"private": true,
"license": "Apache Version 2.0",
"author": "Google Inc.",
"engines": {
"node": "8"
},
"scripts": {
"start": "firebase serve --only functions:dialogflowFirebaseFulfillment",
"deploy": "firebase deploy --only functions:dialogflowFirebaseFulfillment"
},
"dependencies": {
"actions-on-google": "^2.2.0",
"firebase-admin": "^5.13.1",
"firebase-functions": "^2.0.2",
"dialogflow": "^0.6.0",
"dialogflow-fulfillment": "^0.6.1",
"twilio": "3.39.3",
"axios": "0.19.0",
"nodemailer": "6.3.1",
"mysql": "2.17.1"
}
}
"""

In firebase It's Showing this error

dialogflowFirebaseFulfillment | Function execution took 1522 ms, finished with status: 'crash'

dialogflowFirebaseFulfillment Error: No responses defined for platform: null at V2Agent.sendResponses_ (/srv/node_modules/dialogflow-fulfillment/src/v2-agent.js:243:13) at WebhookClient.send_ (/srv/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:505:17) at promise.then (/srv/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:316:38) at at process._tickDomainCallback (internal/process/next_tick.js:229:7)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions