Dialogflow es dialogflow Webhookclient“;请求;财产

Dialogflow es dialogflow Webhookclient“;请求;财产,dialogflow-es,facebook-chatbot,Dialogflow Es,Facebook Chatbot,我正在尝试使用Dialogflow建立一个facebook messenger聊天机器人。在dialogflow实现内联编辑器中,我发现可以使用agent.request\uux.body来获取请求的主体。我假设“请求”是WebClient对象的属性?但我找不到任何详细的文档,请您告知我的理解是否正确,以及在哪里可以找到参考或文档 const-agent=new-WebhookClient({request,response}); log(JSON.stringify(agent.reques

我正在尝试使用Dialogflow建立一个facebook messenger聊天机器人。在dialogflow实现内联编辑器中,我发现可以使用agent.request\uux.body来获取请求的主体。我假设“请求”是WebClient对象的属性?但我找不到任何详细的文档,请您告知我的理解是否正确,以及在哪里可以找到参考或文档

const-agent=new-WebhookClient({request,response});

log(JSON.stringify(agent.request.body))Google提供了Dialogflow webhook的文档,其中包括用于检查参数和动态创建插槽填充提示的示例webhook:

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {

  const agent = new WebhookClient({ request, response });

  function flight(agent) {
    const city = agent.parameters['geo-city'];
    const time = agent.parameters['time'];
    const gotCity = city.length > 0;
    const gotTime = time.length > 0;

    if(gotCity && gotTime) {
        agent.add(`Nice, you want to fly to ${city} at ${time}.`);
    } else if (gotCity && !gotTime) {
        agent.add('Let me know which time you want to fly');
    } else if (gotTime && !gotCity) {
        agent.add('Let me know which city you want to fly to');
    } else {
        agent.add('Let me know which city and time you want to fly');
    }
  }

  let intentMap = new Map();
  intentMap.set('flight', flight);
  agent.handleRequest(intentMap);
});
我想应该补充一点

console.log(agent);
在定义flight函数之前,检查日志以查看代理包含哪些对象,然后添加console.log(agent.fakeObjectName)的迭代,直到找到要查找的信息

如果您正在跟踪,您的日志将显示在Firebase控制台中,如下所示:

希望有帮助

只是一个音符。 我有一个类似的代码:

const city = agent.parameters['geo-city'];
有一个图标表明最好用点符号书写。 在我将其更改为:

const city = agent.parameters.geo-city;

虽然您的建议总体上是好的,但在这种情况下,因为名称中有一个
-
,所以它不起作用