Добавить Dialogflow/Action/Assistant в подпрограммы

Я пытаюсь запрограммировать приложение 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 ответ

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

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

Другие вопросы по тегам