您可以阅读可以通过特定请求调用技能的here。
但我的技能有一个新会话的处理程序,一旦我尝试通过特定请求调用我的技能,它仍然会在这个新的会话功能中结束。
const handlers = {
'NewSession': function () {
this.attributes.speechOutput = this.t('WELCOME_MESSAGE', this.t('SKILL_NAME'));
this.attributes.repromptSpeech = this.t('WELCOME_REPROMT');
this.emit(':ask', this.attributes.speechOutput, this.attributes.repromptSpeech);
},
'RankIntent': function () {
const rank1raw = this.event.request.intent.slots.RankOne;
const rank2raw = this.event.request.intent.slots.RankTwo;
...
}
}
有没有办法获得正确的意图,或者我必须在newSession函数中做一些if子句来查看进入的内容以及应该响应的函数?
答案 0 :(得分:1)
您可以阅读here on line 17:
如果要使用,请使用LaunchRequest,而不是NewSession 一次性模型Alexa,问[my-skill-invocation-name](做 东西)...
所以我的方法是:
const handlers = {
'LaunchRequest': function () {
this.attributes.speechOutput = this.t('WELCOME_MESSAGE', this.t('SKILL_NAME'));
this.attributes.repromptSpeech = this.t('WELCOME_REPROMT');
this.emit(':ask', this.attributes.speechOutput, this.attributes.repromptSpeech);
},
'RankIntent': function () {
const rank1raw = this.event.request.intent.slots.RankOne;
const rank2raw = this.event.request.intent.slots.RankTwo;
...
}
}