[Alexa]セッションをまたいで値を保持する
Alexaのスキル開発をしているときに、セッションをまたいで値を保持したいと思い調べたのでメモ。
セッションごとに値はクリアになる
Alexaではセッションごとに値はクリアになります。
ただ、セッションをまたいで値を保持したい時は往々にしてあると思います。
「アレクサ 、三角形の面積を計算して」
「底辺はなんでしょう?」
「10センチ(底辺の値を保持)」
「高さはなんでしょう?」
「5センチ(高さの値を保持)」
「面積は25平方センチです」
セッションをまたいで値を保持する
最初はグローバル変数を使うのかな、嫌だなと思いましたがしっかりありました。
セッションアトリビュートという仕組みがあり、これを利用します。
[設定する場合]
let attributes = handlerInput.attributesManager.getSessionAttributes();
attributes.height = height;
handlerInput.attributesManager.setSessionAttributes(attributes);
[参照する場合]
let attributes = handlerInput.attributesManager.getSessionAttributes();
var height = attributes.height;
仕組みを知ってしまえば簡単ですね。