Добавить 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, вы должны использовать эту библиотеку для своего веб-крюка.