我正在尝试使用Google行动木马显示一些项目,以处理点击动作,我需要使用intent('actions.intent.OPTION',(?,?,?))函数,但是导致出现以下错误,
ERROR:
TypeError: agent.intent is not a function at exports.dialogflowFirebaseFulfillment.functions.https.onRequest
代码是
const functions = require('firebase-functions');
const {
WebhookClient
} = require('dialogflow-fulfillment');
const {
Image,
Carousel,
BrowseCarousel,
BrowseCarouselItem,
} = require('actions-on-google');
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({
request,
response
});
agent.requestSource = agent.ACTIONS_ON_GOOGLE;
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
// Run the proper function handler based on the matched Dialogflow intent name
let intentMap = new Map();
intentMap.set('Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
intentMap.set('video.search', searchQuery);
// intentMap.set('your intent name here', googleAssistantHandler);
agent.handleRequest(intentMap);
agent.action('actions.intent.OPTION', (conv, params, option) => {
let response = 'You did not select any item';
if (option) {
response = 'You have chosen: ' + option;
}
conv.ask(response);
});
}
如果您在这里缺少任何物品,请提供帮助?
另外,我需要触发深层链接,从意图处理方法中,有什么方法可以从此处触发显式深层链接意图URI?
答案 0 :(得分:1)
该错误消息似乎很奇怪,但看起来您是从Google文档中复制了代码但未阅读其余信息,并试图将其更改为backend lf_was_9080
acl auth_lf_was http_auth(lf_was_auth_list)
http-request auth realm lf_was_auth_list if !auth_lf_was
#mode tcp
server lf_was_9080 10.85.200.158:9080/lf4html/login.jsp check
redirect code 301 location http://10.85.200.158:9080/lf4html/login.jsp
frontend http-in
bind *:80
#Configure SSL & Forward Headers
bind *:443 ssl crt /etc/ssl/my.platform.com
reqadd X-Forwarded-Proto:\ https
reqadd X-Forwarded-Port:\ 443
acl lf_was_9080_in hdr(host) -i sys1204.my.platform.com
use_backend lf_was_9080 if lf_was_9080_in
。
问题在于您正在将agent.action
视为一个函数-事实并非如此。 This is a property包含在“意图”的“参数”部分中设置的“操作”的名称。
通过Dialogflow处理agent.action
是通过创建一个包含事件 actions.intent.OPTION
且没有训练短语的Intent。像这样:
然后,您将拥有一个处理“ input.option”意图的处理程序(使用我在示例中使用的名称),就像处理其他意图处理程序一样。