javascript - 在 Dialogflow v2 中使用 Node.js Webhook 自定义快速回复

标签 javascript node.js webhooks dialogflow-es chatbot

我的用例以更好地理解问题

我正在开发一个聊天机器人,为 worker 解决假设的装配线上的问题提供支持。机器人与用户打招呼后,会建议他使用徽章号码进行身份验证。然后,如果用户接受机器人的提示,机器人会询问他需要支持列表中的哪个组件。
每个 worker 只能管理装配线组件集的一个子集。 我的目标是只向用户展示他有资格管理的部分。 enter image description here

...但真正的问题在这里

我的问题是关于通过 Node.js webhook 设置快速回复。在这里你可以看到

我使用 QuickReplies 的 webhook(简化)

const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {QuickReplies}= require('dialogflow-fulfillment');
const https=require('https');


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 getAllowedParts(agent){
      /* deleted all unuseful details*/
      agent.add(new QuickReplies(['A','B','C']);
  }  //close getAllowedParts


  let intentMap = new Map();
  intentMap.set('UserIntro', getAllowedParts);
  agent.handleRequest(intentMap);

}); 

但它不起作用,在控制台中打印

TypeError: QuickReplies is not a constructor

我遵循了我发现的here我使用了 https://github.com/dialogflow/dialogflow-fulfillment-nodejs/blob/master/docs/WebhookClient.md#WebhookClient+handleRequest 处的 WebhookClient 函数.

真正的问题是我无法理解在 Dialogflow v2 中使用 Node.js webhook 添加非默认快速回复的正确过程是什么。 我还查看了rich messages documentantion ,但它发现它在这个主题上非常缺乏。 任何帮助将不胜感激,谢谢

最佳答案

您应该会在 Dialogflow 控制台的默认 index.js 文件中看到注释掉的快速回复示例。

 agent.add(new Suggestion(`Quick Reply`));
 agent.add(new Suggestion(`Suggestion`));

您还可以从 Github repo 看到还有其他可用的快速回复方法:

let suggestion = new Suggestion('reply to be overwritten');
suggestion.setReply('reply overwritten');

关于javascript - 在 Dialogflow v2 中使用 Node.js Webhook 自定义快速回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52244071/

相关文章:

javascript - prototype.js 用 span 包裹每个 h3 标签

javascript - 获取具有类名的第一个下一个元素 Plain Javascript

python - 从 Node.JS 在 Windows 后台运行命令

node.js - 快速应用程序get()函数遇到错误时,如何跳至下一个中间件(错误处理中间件)

webhooks - Laravel 返回空白的 HTTP 响应

javascript - 我们如何使用 Regex 验证 CSR 的格式

javascript - 用于替代 extjs 框架的免费软件 Ui 设计器

javascript - 如何防止/管理 Stripe Webhook 在试用注册时以 0 美元发送发票?

用于订阅协议(protocol)的 Paypal IPN

ruby-on-rails-4 - 自动化域添加和验证步骤以使用 Google 日历的推送通知