[Alexaスキル開発]セッション内でデータを引き継ぐ方法

Alexa スキル開発セッション, データ

スキルを起動して1回終了するまでの間で、変数など何らかのデータを引き継いで使いたい時、Session attributes を使えば簡単に引き継ぐことが出来ます。

前提

ここで紹介する書き方は、Alexa SDK v2Node.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等が必要)

引用:[日本語Alexa] Alexa-SDK Ver2(その4) スキル属性

参考にさせていただいたのはコチラ。ありがとうございました。

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitter でaoxaをフォローしよう!