[Alexaスキル開発]セッション内でデータを引き継ぐ方法
スキルを起動して1回終了するまでの間で、変数など何らかのデータを引き継いで使いたい時、Session attributes を使えば簡単に引き継ぐことが出来ます。
前提
ここで紹介する書き方は、Alexa SDK v2 で Node.js をお使いの方向けです。
データを保存する時
// セッション情報の取得
let attributes = handlerInput.attributesManager.getSessionAttributes();// 初期化
if(!attributes.test){
attributes.test = data; // ここで入れたいデータを入れる
}// セッション情報の保存
handlerInput.attributesManager.setSessionAttributes(attributes);
データを取得する時
// セッション情報の取得
let attributes = handlerInput.attributesManager.getSessionAttributes();
var test = attributes.test;
ほんとこれだけで、ビックリ。今まで global 変数に入れてた私は阿呆でしたスミマセン。
ちなみに、test の部分は好きな名前に変更できます。
このデータは、次回スキル起動時にはリセットされています。次回スキル起動時にも引き継ぎたい情報があれば、それは Persistent attributes に入れるべしとのことでした。
- Request attributes (1回のリクエスト中のみ有効)
- Session attributes (セッション継続間に有効)
- Persistent attributes (セッションを跨いで永続化 DynamoDB等が必要)
参考にさせていただいたのはコチラ。ありがとうございました。
最新情報をお届けします
Twitter でaoxaをフォローしよう!
Follow @a093_jp