Добавить Dialogflow / Action / Assistant в подпрограммы - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь запрограммировать Приложение DialogFlow с интеграцией в Google Assistant (Действия в Google).Мне нужно периодически выполнять сценарий в определенное время на выбранном устройстве Google Home - мне удалось это сделать с помощью подпрограмм .

К сожалению, настройки подпрограмм не так просты, как я ожидал (вам нужно выполнить несколько щелчков мышью и ввести имя настраиваемого действия).Затем я обнаружил, что можно попросить пользователя об этом в Ассистенте ( Обычные предложения ) и позволить ему установить это с меньшим количеством необходимых шагов.

Но моя реализация не работает:

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 голосов
/ 15 февраля 2019

Вы пытаетесь использовать RegisterUpdate из библиотеки Actions-on-Google?Вы не можете смешивать функции из этой библиотеки с библиотекой диалогового потока.Они несовместимы.

Если вы хотите использовать функции, специфичные для действий в Google, вы должны использовать эту библиотеку для своего веб-крюка.

...