Amazon公式のリファレンス
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference
こちらには、かなり堂々と、AMAZON.DATE
について
「Converts words that indicate dates (“today”, “tomorrow”, or “july”)
into a date format (such as “2015-07-00T9”).」と書いてあるのですが。。
これはつまり、AlexaでCustum skillを作り、Intentをこさえて、
Slot TypeにAMAZON.DATE型を指定したら、Slot.valueから拾い上げたパラメタは、
「August eighteenth」と言ったら「2017-08-18T9」のように変換されているはずだし、
「Tomorrow」と言ったら「2017-04-29T9」のようになってるはず。
とゆーことを説明してるにもかかわらず、
Lambdaのテストイベントでリクエストすると、
以下のように「tomorrow」がそのまま帰ってきてしまうのです。
・入力
"version": "1.0",
"request": {
"locale": "en-US",
"timestamp": "2016-10-27T21:06:28Z",
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.[unique-value-here]",
"intent": {
"slots": {
"birthday": {
"name": "birthday",
"value": "tomorrow"
}
},
"name": "BirthdayToSign"
}
},
・出力
2017-04-29T10:58:23.294Z c3791e0d-2cca-11e7-9d33-23aa71b078c7 L.103 myBirthday=tomorrow
なんなんだー(^^;)
困ったなぁ。。。
あっ、Lambda上のテストだからかな?
Qiitaに書いたら一瞬で自己解決する効果を狙ってエントリを書きました。
Stack over flowで解決策を探そうと思います。。
Alexaを通したら解決!
(3分後)
echoにしゃべりかけて、Alexaシステムを経由したらちゃんと
「Tomorrow」=「April thirtieth 2017」と変換してくれました。
lambda上のテストはこの変換がなされないということで、覚えておこうと思います。