Dialogflow es 如何格式化@sys.date&@DialogFlow中Facebook Messenger响应的sys.time?

Dialogflow es 如何格式化@sys.date&@DialogFlow中Facebook Messenger响应的sys.time?,dialogflow-es,facebook-messenger,facebook-messenger-bot,messenger,dialogflow-es-fulfillment,Dialogflow Es,Facebook Messenger,Facebook Messenger Bot,Messenger,Dialogflow Es Fulfillment,我有一个演示机器人,它把用户的日期和时间作为输入,然后重复给他们。但是,它会以ISO-8601格式重复,这是我不想要的。我设法在GoogleAssistant的内联编辑器中设置了格式,但在Facebook Messenger中不起作用。是否有任何方法可以在Messenger的内联编辑器中对其进行格式化 这是我正在使用的代码,它在测试控制台中正确设置了格式,但在messenger中仍然使用我在Dialogflow中输入的响应。(例如,当然可以,我会在$Date的$Time为您安排一次调整。到时候见

我有一个演示机器人,它把用户的日期和时间作为输入,然后重复给他们。但是,它会以ISO-8601格式重复,这是我不想要的。我设法在GoogleAssistant的内联编辑器中设置了格式,但在Facebook Messenger中不起作用。是否有任何方法可以在Messenger的内联编辑器中对其进行格式化

这是我正在使用的代码,它在测试控制台中正确设置了格式,但在messenger中仍然使用我在Dialogflow中输入的响应。(例如,当然可以,我会在$Date的$Time为您安排一次调整。到时候见!)


您走在正确的轨道上-您需要使用一个实现webhook来按照您想要的方式格式化结果


但是,您正在使用google库上的操作,它只为google助手生成响应。如果希望跨Dialogflow支持的所有集成生成输出,则应查看。它的概念与google上的actions相似,但有一些细微的风格差异。

太棒了!如果答案对你有帮助,接受和/或投票总是很感激的。
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);