Alexa 前回の注文を覚えて行きつけの店感を出してみたい ~永続アトリビュート~
あいさつ
どうも、はかせです。
みなさんは行きつけの店的なものってありますか?
私は残念ながらそういう店はないのですが、
アニメとかで見るといいなぁと思うことがあります。
なので今回はAlexaのコーヒーショップを行きつけの店っぽくしてみます。
永続アトリビュート
Alexaでのやりとりは所詮リクエストでしかありません。
なので普通のプログラムみたいに情報を変数等で
持ち続けることはできません。
Alexaでは永続アトリビュートという仕組みを使って
前回のセッション時の情報を保持しておけます。
詳しい理屈とかは公式のチュートリアルにまるっと書いてるので
そちらをどうぞ
developer.amazon.com
使い方はそんなむずかしくないです。
まず依存関係の追加をします。
C++とかやってると「依存関係・・・ウッ頭が・・・」ってなりそうですが、
jsはjsonファイルに直接書くだけみたいですね。楽でよかった
そしてまたまたこれを使うよーって登録します。
これで前準備は終わりました。
あとはそれっぽいタイミングでしれっと
下の三つの関数を良い感じに呼ぶだけです。
//データ取得 async handlerInput.attributesManager.getPersistentAttributes() //データセット handlerInput.attributesManager.setPersistentAttributes("保存したいもの") //データ保存(永続化?) async handlerInput.attributesManager.savePersistentAttributes()
初めてjsで非同期処理が出てきましたね。
まぁそこは本題ではないですし、
多分C#と同じノリでいけるでしょう(適当)
さてそれっぽい感じで呼んでみて
実行
店長僕のこと覚えててくれたんだね(´;ω;`)
という感じでうれしくなりましたまる
あとがき
今回はAlexaコーヒーショップの店長に注文を覚えてもらいました。
どういう形でも誰かの記憶(今回は記録か)に自分が残るってのはうれしいもんですね。
それでは今回はこの辺でノシ