如何通过webhook在对话框流上回复来自Web演示的消息

时间:2018-03-15 10:27:20

标签: node.js web bots dialogflow demo

我目前正在尝试将chatbot添加到我的网站。 我在用于我们的lIne bot的代理上集成了web演示。 哪些响应由lambda webhook处理。

我问的是,我们可以使用lambda发送对网络演示的回复吗?  如果可以,那我该如何发送? 假设有一些身份证?我们使用HTTP post请求发送它们吗? 我找不到一个例子。

并且对于某些具有多个对话流处理响应的意图,它只能发送其中一个。 这是为什么?我该怎么办才能通过对话流发送所有这些内容?

1 个答案:

答案 0 :(得分:0)

是的,它可以实现,您可以参考为此提供NodeJs代码,

const express = require("express");
const bodyParser = require("body-parser");
const apiai = require("apiai");
const request = require("request");

const app = express();
app.use(bodyParser.json());
app.set("port", process.env.PORT || 5000);


app.post("/", (req, res) => {
  //console.log(req.body)
  const action = req.body.result.action;
  if (!req.body || !req.body.result || !req.body.result.parameters) {
    return res.status(400).send("Bad Request");
  }
  console.log("--------------------------------");
  console.log("Action =>", action);
  console.log("--------------------------------");
  switch (action) {
    case "price.search":
            const webhookReply = `Sorry NO book found in store.`;
            res.status(200).json({
              source: "webhook",
              speech: webhookReply,
              displayText: webhookReply
            });
      break;

    default:
      break;
  }
});

app.listen(app.get("port"), function() {
  console.log("* Webhook service is listening on port:" + app.get("port"));
});

对于每个intent,我们必须在dialogFlow中定义action

因此,当用户输入任何查询时,您的webhook将被触发 进入开关盒找到特定的动作并形成这种情况,你可以将重播发送回你的机器人。