将Dialogflow / Action / Assistant添加到例程

时间:2019-02-15 12:13:32

标签: dialogflow google-assistant-sdk google-api-nodejs-client routines

我正在尝试对 DialogFlow应用程序进行编程,使其集成到 Google助手(Google上的操作)。我需要的是在一定时间内通过选定的Google Home设备定期执行脚本-我设法通过 Routines 做到了。

不幸的是,例程的设置并不像我期望的那么容易(您需要多次单击并键入自定义操作名称)。然后,我发现可以在助手(Routine suggestions)中向用户询问,然后让他用更少的必要步骤进行设置。

但是我的实现无法正常工作

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });
  ...
  function scheduleRoutine(agent) {
      const intent = agent.arguments.get('UPDATE_INTENT');
      agent.add(new RegisterUpdate({
        intent: intent,
        frequency: 'ROUTINES'
      }));
  }

  let intentMap = new Map();
  ...
  intentMap.set('setup_update', scheduleRoutine)
  agent.handleRequest(intentMap);
});

因为我正在使用WebhookClient,所以无法如示例中那样呼叫conv.arguments.get('UPDATE_INTENT')。但是我可以通过实现来达到那部分代码,这会导致错误:

TypeError: Cannot read property 'get' of undefined
     at scheduleRoutine (/user_code/index.js:71:34)

有人已经使用Dialogflow实施了常规建议吗??

1 个答案:

答案 0 :(得分:0)

您是否要使用Google Actions上的RegisterUpdate?您不能将该库中的功能与dialogflow-fulfillment库混合使用。它们不兼容。

如果要使用特定于Google动作的功能,则必须将该库用于Webhook。