improvement_suggestion

node v10.24.1
version: 9.0.0
endpointsharetweet
require("actions-on-google")// See https://github.com/dialogflow/dialogflow-fulfillment-nodejs // for Dialogflow fulfillment library docs, samples, and to report issues const {WebhookClient} = require('dialogflow-fulfillment'); const {Card, Suggestion} = require('dialogflow-fulfillment'); const GoogleSpreadsheet = require("google-spreadsheet"); var admin = require("firebase-admin"); const express = require('express') const app = express(); const bodyParser = require('body-parser'); const port = 3000; const googleSheetCredentials = { "type": "service_account", "project_id": "improvesuggestion-gbqecy", "private_key_id": "a5df49c2cb3cc6e336883f93b339bd7b805fb1d3", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDDvh9YiHwNxg63\n5bX1Am5xBWWw1s3lMQnK89uMgoNHo4yIo/eiGSwQPcBaDRG7ZctICBu3O4ASvMP6\n99DEgunFfMrdiunykY1rWIDdZuWHygZJm4rgg/hpn5B7GcGE59UpYFmHgIA5hPDI\nQLiRp65P19bH92qLWGRtrcJejvOVngw8gBo0fhZGwJr/lqiPR+1LKjHo/6R7KgxI\nVnX0XwwXkHC6qsZqYAfqwdlNDdKMTm5aIt1iD5FNCnpnKKM2M4RjtpPMUdItrd8O\nv+Me4XVunfAf7/4lcyCmpHxGKM6PLjtigzYqiRxmv5wjffGeXG2TFcibUovutuBo\nF6fzZriRAgMBAAECggEAAKSU90Y5fBUYssdtHdEkejgNkbNe6UAMO2+qGq/KDRfv\nK/q34z8oayQ8x77vvjkTHhkyuBsYrFcU4LPkKmUQrf6fLvOYGZ0bRQ09HR0Lp3LF\nKwQ5BExCqlwlDhZzUYOuakyf9qc4JJg4bzvxLz9I/gekM7NvFOaVK9wMfaGEEMt6\n30udUwwwEw1y05Rubtyd2zl3omKL6FLgV4+/mX7NIeLJMYvOdwHu8Iwvm3f7TnMy\nQlX4+G66mauiUR24lEI+8bt3lg5xRAmTNMyNJpMB1dQyRFNNU1u8cdapQenRxOBv\n6meQ+jQXpR7AhjTyYHGy06piEw4Xjuzh01xa7lZdDQKBgQDsjOWtk3KjTBtYqsCI\nmWmzlZBQO8w4N6H2ASgGnfBYSd464p2ayZy3gQUnNfolWGYKEVNNDsjLw5nnIe+9\nRZZyqn6IQyNucxL3poaOp0+pJ2nMwRs2cd3RjX802TSyciWVFw6121KLyAnzmo75\nLoFiXCYSXzbMRzyTUW9CGP4HtQKBgQDT1kWLD6LxDtYqNswAGEySgJbHY9fLkDO+\n7/Tb3roSbcGTs8b83waSvW80uxizhygRlruTaVbJ0bWSFLZvoIr877xGYQIAcfLr\nuDJA/cY8RMmUoHV0jlf/By4Vrt58NvQVYvcrP/dqAwgk3gECFMiVolHXm/KVHZaL\n1VPoJsT+7QKBgEpVFC9xMArkdYttTMcf/jkyfIDZ6ZiY0sotHtjFdKspuy2h3Iix\nZg+7+VSS/6IQny/2tch3Jt3w/0HERkOhxF8P+Gb1QgMJIiK0L4BQTxYGjpaK7/Qx\n39RjtF91CbwxZmHtNvAqlUvbdlUYcmkXFg1Ei6omRV/32q8oXd/VXq4pAoGAa3wM\nOzwK3C9AAZleNyodKDSwzKjfZL1dVCNi5XEEjrc8Alq0u7faGPifhWztYqJQdWQ6\n9tf7HloWu/FghBE8lIx7xmYQYvNuY6ZJcWqSfCAW/B/SmPpksdUN0BizcOldPcDC\nUyKYwiSZrEMs1cZ/5FTBHBpXosupiHgMo/2P9R0CgYBjEhsPBi4qRX3Um1Bapvow\nprX7Tcm8V8TzO10jYastCLfAi4f6hp+A6q2YQQUDcUunsd63L6FJ+uyDL9ZFTgxZ\nu1TFBJyDKWfhYIXLPMA+dsSxMKpaAqnNXWoxw5JTc0iJY4IjAwvzVQ7io6+rxeW8\nP7DCWkR++n5cqBhud5Tvgw==\n-----END PRIVATE KEY-----\n", "client_email": "google-sheet-service-account@improvesuggestion-gbqecy.iam.gserviceaccount.com", "client_id": "117445679582924123083", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/google-sheet-service-account%40improvesuggestion-gbqecy.iam.gserviceaccount.com" }; var serviceAccount = { "type": "service_account", "project_id": "improvesuggestion-gbqecy", "private_key_id": "bed3c7798d2037f3c5f70736ced8624c8b6f0e43", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCe6vDESqQWn1rY\nvfz0kaVK2TzWzZLSiVnUqvvyRNjkyMqzgq0XO7FgezmbNHMiEnxM4RTYSxp1pLgy\nz0zLKSHdP58pYIwUmJL9L6Z6aQodgCbRkL4DEEg/hpzor58cU3IFmBz+h54UdnC0\n1WYc4ObN7809aI2Ej6agN8ytZXaY7z8iIAWAjORs/jKtSqSgA54aN/7hGXWplNeO\n0x3C3ugAZaiZtoe4Ju6PZKMEU4fnq9q/67Ll7u51H9mXvvt5E8cZhUEBG7QvTxL0\nItZcgs0Vfef6JPaZ2RqWnDAErlb+eFn+zErey3irZoXwLYwyvAK98PlAukAOrbRe\n6BMEZCYLAgMBAAECggEAGIV3FkrQK/911KjoPdK1dymzJg/9fkgcWODzVGxELXVA\nNdfNnp6i3ZjWCDldJJ5GmNRIU6GvGQUMOSbcmiKkK5AUHp3br5flYnT2UsAfg/LQ\nyphzgWSDSW4bixoCSqwjlXJl0u6ZOV4XQQgGpCEd7Bv7BuU5pQFHfERv7DeSR8Gw\npb1Bw6bfqCm6pLtcbboTfTt1mxeybNQVJqLGSNMif6Q7mgNNnijz8QdW1oLKICDI\n1YQBd2Qn/zws4d2gQ3JqXXWvcA6q6ED2nw4+jrN1Z7M/l8oTrGciWECQBiWgQ+2Y\nY5iFL6KEZqTeG3y2CTbWaUWY6O9dzbyCyF/iq6o3TQKBgQDSmfghPmVdmDQAFqpt\nSNAkWFiPsqJYEMQXLhTjunEsJwjpfTLeRSt6Rkfm/AIRCzBBv0F2WTNDAQ8te6qt\nQjWDVoFRQ53ZFYAkaqJ/EbSc+XdxM9Y9xRGy1qDQqI+vJZQ0/VcGct/Stw8r1nX/\noXt9BmyKmcRyDQEoIpnfPiTrNQKBgQDBLM7vFT3ihZ6SXpPvKi2IooVuIS4HuVUm\niCklwMAtXjxmc4mohqz5e2TPbX/3AkfatpjE/RdtclBjQGGQcyBkjFITD7mzr+FQ\nVErL5TpOdViXex33QkwgaiC0l0CUiwMywnnkj8Y7QmtOf0LIOXzIMRskRnoYjqV7\n/68YVNm0PwKBgDhhYe08cBSrb5hqePvC134zbJojv5SGAIkYHB2PR0cDuD4R93FL\n4UTd1df/tWnsreGcGyFc5f1VJkQN7HZv2DWuDfa8fGCmgeS963zLN6ginRhgQUXO\nIVvYW7sgtT61d8Tr4cVnMYaO3W/l/TcPeyjQdHRykAXcd2fQQ5NhZq7VAoGABOzm\njdQF0uvDQkolDXkO1igGrOstqEbCdAwOuIa0n7OCaL5TaTed23KY/Gz3UU3+lQYI\n2ST23vSGNjGjCzLURZwKT7Ab9Qfr/8dWbOJ4XR3C14HtHqvTExSBpvkgTWlJ+JZa\n00gTLtmfsM2v3zkQBG60GXWukUe50nKPfVhUgLMCgYEAn9360riKeu1ciNdLWCik\n6roXN/iPiZVmonJa+V1dNw+FOKeUntWMGOIYwDagp2ksLyQ8eJ1lWZXIhpU+2dCH\nUJIlncXi2ND2MwuyQlMb7criQBKjZJ0PWVyL4WULDmJm2ehy6ygi4bN9trL/zPhH\ntNZ0qpvLI3tV5RGtWnJTlV8=\n-----END PRIVATE KEY-----\n", "client_email": "firebase-adminsdk-fsbjo@improvesuggestion-gbqecy.iam.gserviceaccount.com", "client_id": "108833506983550080070", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-fsbjo%40improvesuggestion-gbqecy.iam.gserviceaccount.com" }; admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: "https://improvesuggestion-gbqecy.firebaseio.com" }); var doc = new GoogleSpreadsheet("1r5r-Hrzf08D6DgfHwwiRnegS8v_TcdeZhtWWlj6HUP0"); // Get a database reference to our blog var db = admin.database(); var usersRef = db.ref("improvesuggestion-gbqecy"); app.use(bodyParser()); app.post('/firebase', (request, response) => { console.log('in firebase'); const agent = new WebhookClient({ request, response }); function welcome(agent) { agent.add(`Welcome to my agent!`); } let sheet; function survey(agent) { console.log('in survey'); usersRef.push({ 'Intent':request.body.queryResult.intent.displayName, 'Text':request.body.queryResult.queryText }); doc.useServiceAccountAuth(googleSheetCredentials, function(err, res) { console.log('in doc'); doc.getInfo(function(err, info) { console.log('Loaded doc: '+info.title+' by '+info.author.email); sheet = info.worksheets[0]; let intentMap1 = new Map(); intentMap1.set('SURVEY Q1 I would like to make a suggestion', {'SURVEY Q1 I would like to make a suggestion': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q10 Expected Implementation Return', {'SURVEY Q10 Expected Implementation Return': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q16 on SMART', {'SURVEY Q16 on SMART': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q11 Resources Needed To Implement', {'SURVEY Q11 Resources Needed To Implement': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q1 Ask Name', {'SURVEY Q1 Ask Name': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q1 Ask Company', {'SURVEY Q1 Ask Company': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q1 Role or Position', {'SURVEY Q1 Role or Position': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q1 Phone No Request', {'SURVEY Q1 Phone No Request': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q1UCConfidence', {'SURVEY Q1UCConfidence': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q1BenefitCode', {'SURVEY Q1BenefitCode': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q1Costs', {'SURVEY Q1Costs': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q12 NewprocessIT', {'SURVEY Q12 NewprocessIT': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q12 OperatingCosts', {'SURVEY Q12 OperatingCosts': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q12 PRIOR', {'SURVEY Q12 PRIOR': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q12 PRIOR - IMPACT', {'SURVEY Q12 PRIOR - IMPACT': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q12 PRIOR - IMPACT - SMART', {'SURVEY Q12 PRIOR - IMPACT - SMART': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q16 with SMART Descriptors', {'SURVEY Q16 with SMART Descriptors': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q16 SMART Explain S', {'SURVEY Q16 SMART Explain S': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q16 SMART Explain M', {'SURVEY Q16 SMART Explain M': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q16 SMART Explain A', {'SURVEY Q16 SMART Explain A': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q16 SMART Explain R', {'SURVEY Q16 SMART Explain R': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q16 Explain T', {'SURVEY Q16 Explain T': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q16 Ask to Send by Email', {'SURVEY Q16 Ask to Send by Email': request.body.queryResult.queryText}); intentMap1.set('SURVEY Q16 Ask to Send by Email - custom', {'SURVEY Q16 Ask to Send by Email - custom': request.body.queryResult.queryText}); //map1.set('SURVEY Q1 I\'d like to make a suggestion', {'SURVEY Q1 I\'d like to make a suggestion': request.body.queryResult.queryText}) console.log(intentMap1.get(request.body.queryResult.intent.displayName)); doc.addRow(1, intentMap1.get(request.body.queryResult.intent.displayName), function(err, addedRows) { //console.log(addedRows); }); }); }); } function fallback(agent) { agent.add(`I didn't understand`); agent.add(`I'm sorry, can you try again?`); } // // Uncomment and edit to make your own intent handler // // uncomment `intentMap.set('your intent name here', yourFunctionHandler);` // // below to get this function to be run when a Dialogflow intent is matched // function yourFunctionHandler(agent) { // agent.add(`This message is from Dialogflow's Cloud Functions for Firebase editor!`); // agent.add(new Card({ // title: `Title: this is a card title`, // imageUrl: 'https://developers.google.com/actions/images/badges/XPM_BADGING_GoogleAssistant_VER.png', // text: `This is the body text of a card. You can even use line\n breaks and emoji! šŸ’`, // buttonText: 'This is a button', // buttonUrl: 'https://assistant.google.com/' // }) // ); // agent.add(new Suggestion(`Quick Reply`)); // agent.add(new Suggestion(`Suggestion`)); // agent.setContext({ name: 'weather', lifespan: 2, parameters: { city: 'Rome' }}); // } // // Uncomment and edit to make your own Google Assistant intent handler // // uncomment `intentMap.set('your intent name here', googleAssistantHandler);` // // below to get this function to be run when a Dialogflow intent is matched // function googleAssistantHandler(agent) { // let conv = agent.conv(); // Get Actions on Google library conv instance // conv.ask('Hello from the Actions on Google client library!') // Use Actions on Google library // agent.add(conv); // Add Actions on Google library responses to your agent's response // } // // See https://github.com/dialogflow/dialogflow-fulfillment-nodejs/tree/master/samples/actions-on-google // // for a complete Dialogflow fulfillment library Actions on Google client library v2 integration sample // 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('SURVEY Q1 I would like to make a suggestion', survey); intentMap.set('SURVEY Q10 Expected Implementation Return', survey); intentMap.set('SURVEY Q16 on SMART', survey); intentMap.set('SURVEY Q11 Resources Needed To Implement', survey); intentMap.set('SURVEY Q1 Ask Name', survey); intentMap.set('SURVEY Q1 Ask Company', survey); intentMap.set('SURVEY Q1 Role or Position', survey); intentMap.set('SURVEY Q1 Phone No Request', survey); intentMap.set('SURVEY Q1UCConfidence', survey); intentMap.set('SURVEY Q1BenefitCode', survey); intentMap.set('SURVEY Q1Costs', survey); intentMap.set('SURVEY Q12 NewprocessIT', survey); intentMap.set('SURVEY Q12 OperatingCosts', survey); intentMap.set('SURVEY Q12 PRIOR', survey); intentMap.set('SURVEY Q12 PRIOR - IMPACT', survey); intentMap.set('SURVEY Q12 PRIOR - IMPACT - SMART', survey); intentMap.set('SURVEY Q16 with SMART Descriptors', survey); intentMap.set('SURVEY Q16 SMART Explain S', survey); intentMap.set('SURVEY Q16 SMART Explain M', survey); intentMap.set('SURVEY Q16 SMART Explain A', survey); intentMap.set('SURVEY Q16 SMART Explain R', survey); intentMap.set('SURVEY Q16 Explain T', survey); intentMap.set('SURVEY Q16 Ask to Send by Email', survey); intentMap.set('SURVEY Q16 Ask to Send by Email - custom', survey); // intentMap.set('your intent name here', yourFunctionHandler); // intentMap.set('your intent name here', googleAssistantHandler); agent.handleRequest(intentMap); }); app.listen(port, () => console.log(`Example app listening on port ${port}!`))
Loadingā€¦

no comments

    sign in to comment