您如何在实现代码中处理给定名称参数?
How do you address given name parameter in fulfillment code?
我在 Dialogflow 网络界面中创建了一个意图。它自动检测到一个名为 given-name 的参数,在 Web 界面中将其列为 $given-name
。我试图在网络界面提供的履行内联编辑器中解决 $given-name
,但我没有取得任何成功。
我试过将参数名称更改为驼峰式大小写,也尝试使用下划线替换连字符,但似乎都不起作用。
这是来自 dialogflow fulfillment 内联编辑器的代码片段:
'use strict';
// Import the Dialogflow module from the Actions on Google client library.
const {dialogflow} = require('actions-on-google');
// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');
// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});
// Can't address given-name, intentionally used an underscore
app.intent('run demo', (conv, {given_name}) => {
conv.close('Hi ' + given_name +'! This is the demo you asked me to run!');
});
// Set the DialogflowApp object to handle the HTTPS POST request.
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
我想知道在代码部分解决给定名称参数的正确方法app.intent('run demo', (conv ...);
解决方案
我找到的一个解决方案是这段代码:
app.intent('run demo', (conv, params) => {
conv.close('Hi ' + params['given-name'] +'! This is the demo you asked me to run!');
});
说明
app.intent('run demo',...
的(conv, params) => {...}
实际上是一个匿名的回调函数(aka anonymous callback function)。 conv
和 params
被 arguments/parameters 传递给回调函数。函数的定义似乎在 API 的这一页上:Callable。它统计可以传入的 parameters/arguments 可以是 conv
、params
、argument
、status
。
最后的想法
关于 google 操作的 API 文档帮助了:actions on google api reference link
我在 Dialogflow 网络界面中创建了一个意图。它自动检测到一个名为 given-name 的参数,在 Web 界面中将其列为 $given-name
。我试图在网络界面提供的履行内联编辑器中解决 $given-name
,但我没有取得任何成功。
我试过将参数名称更改为驼峰式大小写,也尝试使用下划线替换连字符,但似乎都不起作用。
这是来自 dialogflow fulfillment 内联编辑器的代码片段:
'use strict';
// Import the Dialogflow module from the Actions on Google client library.
const {dialogflow} = require('actions-on-google');
// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');
// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});
// Can't address given-name, intentionally used an underscore
app.intent('run demo', (conv, {given_name}) => {
conv.close('Hi ' + given_name +'! This is the demo you asked me to run!');
});
// Set the DialogflowApp object to handle the HTTPS POST request.
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
我想知道在代码部分解决给定名称参数的正确方法app.intent('run demo', (conv ...);
解决方案
我找到的一个解决方案是这段代码:
app.intent('run demo', (conv, params) => {
conv.close('Hi ' + params['given-name'] +'! This is the demo you asked me to run!');
});
说明
app.intent('run demo',...
的(conv, params) => {...}
实际上是一个匿名的回调函数(aka anonymous callback function)。 conv
和 params
被 arguments/parameters 传递给回调函数。函数的定义似乎在 API 的这一页上:Callable。它统计可以传入的 parameters/arguments 可以是 conv
、params
、argument
、status
。
最后的想法
关于 google 操作的 API 文档帮助了:actions on google api reference link