У меня есть демонстрационный бот, который принимает дату и время пользователя в качестве входных данных и просто повторяет их им. Однако он повторяется в формате ISO-8601, чего я не хочу. Мне удалось отформатировать во встроенном редакторе Google Assistant, но он не работает в Facebook Messenger. Есть ли способ отформатировать его во встроенном редакторе для Messenger?
Это код, который я использую, он правильно форматирует его в тестовой консоли, но в мессенджере все еще используются ответы, которые я ввел в Dialogflow. (например, «Конечно, я приглашу вас на настройку в $Time на $Date. Тогда увидимся!)
const functions = require('firebase-functions');
const {dialogflow} = require('actions-on-google');
const WELCOME_INTENT = 'Default Welcome Intent';
const FALLBACK_INTENT = 'Default Fallback Intent';
const TUNEUP_INTENT = 'Book Tune-Up';
const DATE_ENTITY = 'Date';
const TIME_ENTITY = 'Time';
const timeZone = 'Europe/Belgrade';
const app = dialogflow();
function getLocaleTimeString(dateObj){
return dateObj.toLocaleTimeString('en-US', { hour: 'numeric', hour12: true, timeZone: timeZone });
}
function getLocaleDateString(dateObj){
return dateObj.toLocaleDateString('en-US', { weekday: 'long', month: 'long', day: 'numeric', timeZone: timeZone });
}
app.intent(TUNEUP_INTENT, (conv) => {
const date = getLocaleDateString(new Date(conv.parameters[DATE_ENTITY]));
const time = getLocaleTimeString(new Date(conv.parameters[TIME_ENTITY]));
const responses = [`Sure thing, I'll hook you up with a tune-up at ${time} on ${date}. See you then!`,
`Cool! So to recap - I'll book you with a tune-up on ${date} at ${time}. Thanks for booking!`,
`Great, you're booked for ${date} at ${time}. See you then!`];
conv.ask(responses[Math.floor(Math.random() * responses.length)]);
});
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);





Вы на правильном пути — вам нужно использовать веб-хук выполнения, чтобы отформатировать результат так, как вы хотите.
Однако вы используете библиотеку действий в Google, которая выдает ответы только для Google Ассистента. Если вы хотите получить вывод для всех интеграций, поддерживаемых Dialogflow, вам следует изучить файл библиотека реализации диалогового потока. Концепции для него аналогичны действиям в Google, но есть небольшие отличия в стиле.
Здорово! Если ответ помогает вам, принятие и/или голосование за него всегда приветствуются.