2016-07-13 52 views
4

所以,我正在与亚马逊Echo项目工作。我的目标是记录何时执行特定操作并将其记录到数据库中。我的问题是时区,我通过使用时代来避免这种情况。然而,从我可以告诉定制插槽的意图,我的选择是没有时间的格式化日期字符串,或没有日期的格式化时间字符串,并且最重要的是,我没有办法在没有时间的情况下获取客户端的时区特别要求它基于我在谷歌搜索中找到的一些论坛帖子。Alexa技能自定义插槽的日期时间

回声只是讨厌日期吗?这似乎是一件应该很容易的事情,但我正在努力弄清楚如何处理它,而不是很尴尬,并询问他们住在哪里,以便我可以查看他们的时区。我已经不得不通过告诉他们他们做某事的具体时间来说明他们多久之前做了某些事情,因为我无法将日期回传给Echo,并期望它能够翻译它。这是我必须做的又一个愚蠢的关键吗?

回答

1

正确,您无法从Alexa获取客户的TZ或位置。这是一个隐私问题。唯一的办法是自己去问问。

有一个“五位数字”的自定义插槽,非常适合邮政编码。这是获取用户大概位置的最简单方法。

如果你想得到更多的创造性,因为回声(只是)只用于美国,你只需要缩小到四个时区之一。 (牺牲阿拉斯加,夏威夷和亚利桑那半年。)你可以问问他们在哪个时区,这是不太侵扰性的。或者,如果你想获得创意,可以开个玩笑吧。

  • 答:“流行测验:你在东部标准时间吗?”
  • U:“不”
  • 答:“Drat。让我再猜一次,你看起来像一个山地时间人。

...

是。这是一个刺激性的限制。但是如果你能找到解决问题的新方法,你的技能将更加可爱。

+0

另一个问题表明使用“五位数字”的问题:http://stackoverflow.com/questions/40132347/amazon-five-digit-number-does-not-exist-to-capture-zipcode-in-amazon -Alexa –

1

看起来你不能检测用户的时区,但你仍然应该能够实现你的目标。有几个想法:

  • 你可以只让系统无知的时区的共有。每个用户可能有不同的时区,但特定用户的所有时间都在同一个时区,因此任何持续时间计算都可以正常工作。
  • 没有DATETIME插槽类型,所以您需要分别处理每个插槽为AMAZON.DATE和AMAZON.TIME。例如“{TIME}上的{DATE}完成标记”
  • 此外,如果您是现实世界标记完成日期时间,是否可以在代码中生成时间戳,而不是让它们说出来?
  • 如有必要,请求Zip可能是设置时区的快捷方式。
  • Hacky:如果您使用账户链接,您可能能够在登录页面上从客户端检测其时区。

服务器时间戳和用户时区中的口语时间之间的转换将会产生问题,但也许您可以解决它,直到亚马逊包含时区数据。