将快速路线与 Google 助理意图相匹配
Matching Express Routes to Google Assistant intents
我有一个 Express 应用程序,我正尝试将其与 Google Assistant 集成。
我已经安装了 https://www.npmjs.com/package/actions-on-google and have followed https://codelabs.developers.google.com/codelabs/actions-1/#0,它可以将功能部署到 Firebase - 但是我想 运行 从自托管的 Express 服务器上部署它们。
在我的app.js中设置如下:
const {
dialogflow,
Image,
} = require('actions-on-google')
// Create an app instance
const gapp = dialogflow();
});
但是我不确定如何创建我在 Dialogflow 控制台中添加的路由作为 webhook - 我是否使用以下格式?
app.post('/webhook', function(req, res){
gapp.intent('favorite color', (conv, {color}) => {
const luckyNumber = color.length;
// Respond with the user's lucky number and end the conversation.
conv.close('Your lucky number is ' + luckyNumber);
});
});
如果是这样,那么我的所有意图都在这条路线内吗?
编辑
更新响应回答:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const {
dialogflow,
Image,
} = require('actions-on-google')
// Create a google app instance
const gapp = dialogflow()
// Register handlers for Dialogflow intents
gapp.intent('Default Welcome Intent', conv => {
conv.ask('Hi, how is it going?')
conv.ask(`Here's a picture of a cat`)
conv.ask(new Image({
url: 'https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/imgs/160204193356-01-cat-500.jpg',
alt: 'A cat',
}))
})
// Intent in Dialogflow called `Goodbye`
gapp.intent('Goodbye', conv => {
conv.close('See you later!')
})
gapp.intent('Default Fallback Intent', conv => {
conv.ask(`I didn't understand. Can you tell me something else?`)
})
app.post('/ga/webhook', gapp)
您可以在 Express 服务器启动时定义所有 gapp
意图,然后您可以将 gapp
对象传入您定义的 webhook:
const express = require('express')
const bodyParser = require('body-parser')
// ... gapp code here
const expressApp = express().use(bodyParser.json())
expressApp.post('/webhook', gapp)
expressApp.listen(3000)
我有一个 Express 应用程序,我正尝试将其与 Google Assistant 集成。
我已经安装了 https://www.npmjs.com/package/actions-on-google and have followed https://codelabs.developers.google.com/codelabs/actions-1/#0,它可以将功能部署到 Firebase - 但是我想 运行 从自托管的 Express 服务器上部署它们。
在我的app.js中设置如下:
const {
dialogflow,
Image,
} = require('actions-on-google')
// Create an app instance
const gapp = dialogflow();
});
但是我不确定如何创建我在 Dialogflow 控制台中添加的路由作为 webhook - 我是否使用以下格式?
app.post('/webhook', function(req, res){
gapp.intent('favorite color', (conv, {color}) => {
const luckyNumber = color.length;
// Respond with the user's lucky number and end the conversation.
conv.close('Your lucky number is ' + luckyNumber);
});
});
如果是这样,那么我的所有意图都在这条路线内吗?
编辑 更新响应回答:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const {
dialogflow,
Image,
} = require('actions-on-google')
// Create a google app instance
const gapp = dialogflow()
// Register handlers for Dialogflow intents
gapp.intent('Default Welcome Intent', conv => {
conv.ask('Hi, how is it going?')
conv.ask(`Here's a picture of a cat`)
conv.ask(new Image({
url: 'https://developers.google.com/web/fundamentals/accessibility/semantics-builtin/imgs/160204193356-01-cat-500.jpg',
alt: 'A cat',
}))
})
// Intent in Dialogflow called `Goodbye`
gapp.intent('Goodbye', conv => {
conv.close('See you later!')
})
gapp.intent('Default Fallback Intent', conv => {
conv.ask(`I didn't understand. Can you tell me something else?`)
})
app.post('/ga/webhook', gapp)
您可以在 Express 服务器启动时定义所有 gapp
意图,然后您可以将 gapp
对象传入您定义的 webhook:
const express = require('express')
const bodyParser = require('body-parser')
// ... gapp code here
const expressApp = express().use(bodyParser.json())
expressApp.post('/webhook', gapp)
expressApp.listen(3000)