ask-sdk v2でのstateがない
v2でのstateはこうやる?
v2にstateという概念がない。
this.handler.state = ...;
とかってのがない
てか、もともとAlexaから送られてくるjsonにstate
とかって項目はなくてsessionAttributesの中にSTATE
という値を入れてあげてそれで管理していた。
ここで、再確認しておくのがv2でのsessionAttributesの保存方法は
// 保存の方法は
attributes = {
"key": "value"
}
handlerInput.attributesManager.setSessionAttributes(attributes);
この容量で
attribute = {
STATE: "stateKey"
}
handlerInput.attributesManager.setSessionAttributes(attributes);
って、設定してあげてcanHandle
の中で
return handlerInput.requestEnvelope.session.attributes.STATE === "stateKey"
とかってしてあげればいいのではないか
つまり、こんな感じ?
const sampleIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'levelIntent'
&& handlerInput.requestEnvelope.session.attributes.STATE === "stateKey"; // ここ
},
handle(handlerInput) {
...
}
};
handlerInput.attributesManager.getSessionAttributes().STATE
にstateKey
がはいっていなかったらcanHandle
でfalse
を返されるので、呼ばれない
他にいい方法ってか、ちゃんとした方法がある?
Author And Source
この問題について(ask-sdk v2でのstateがない), 我々は、より多くの情報をここで見つけました https://qiita.com/imajoriri/items/91e0c3c6276aff4aff1c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .