Как отформатировать @sys.date и @sys.time для ответа Facebook Messenger в DialogFlow?

У меня есть демонстрационный бот, который принимает дату и время пользователя в качестве входных данных и просто повторяет их им. Однако он повторяется в формате 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);
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
2 205
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы на правильном пути — вам нужно использовать веб-хук выполнения, чтобы отформатировать результат так, как вы хотите.

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

Здорово! Если ответ помогает вам, принятие и/или голосование за него всегда приветствуются.

Prisoner 31.01.2019 19:18

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