Created
May 2, 2018 11:23
-
-
Save sherazlodhi/c5d350c15912226fc158299d9c48a9fa to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// See https://github.com/dialogflow/dialogflow-fulfillment-nodejs | |
// for Dialogflow fulfillment library docs, samples, and to report issues | |
'use strict'; | |
const functions = require('firebase-functions'); | |
const {WebhookClient} = require('dialogflow-fulfillment'); | |
const {Card, Suggestion} = require('dialogflow-fulfillment'); | |
const { BrowseCarousel,RichResponse,BrowseCarouselItem,Button,BasicCard } = require('actions-on-google'); | |
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 welcome(agent) { | |
agent.add(`Welcome to my agent!`); | |
} | |
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(); | |
// Add Actions on Google library responses to your agent's response | |
conv.ask(new BasicCard({ | |
text: `This is a basic card. Text in a basic card can include "quotes" and | |
most other unicode characters including emoji 📱. Basic cards also support | |
some markdown formatting like *emphasis* or _italics_, **strong** or | |
__bold__, and ***bold itallic*** or ___strong emphasis___ as well as other | |
things like line \nbreaks`, // Note the two spaces before '\n' required for | |
// a line break to be rendered in the card. | |
subtitle: 'This is a subtitle', | |
title: 'Title: this is a title', | |
buttons: new Button({ | |
title: 'This is a button', | |
url: 'https://assistant.google.com/', | |
}), | |
image: new Image({ | |
url: 'https://example.com/image.png', | |
alt: 'Image alternate text', | |
}), | |
})); | |
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('your intent name here', yourFunctionHandler); | |
intentMap.set('hera', googleAssistantHandler); | |
agent.handleRequest(intentMap); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment