const HelloWorldIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'CanFulfillIntentRequest'
},
handle(handlerInput) {
if(handlerInput.requestEnvelope.request.intent.name === 'Myname'){
return MynameHandler.handle(handlerInput);
}
const MynameHandler = {
handle(handlerInput) {
const speechText = 'ALex';
const repromtText = 'Please respond';
return handlerInput.responseBuilder
.speak(speechText)
.withCanFulfillIntent(
{
"canFulfill":"YES",
})
.getResponse();
}
};
{
"session":{
"new": true,
"sessionId":"SessionId.<My Session id>",
"application":{
"applicationId":"amzn1.ask.skill.<Application id>"
},
"attributes":{
"key": "string value"
},
"user":{
"userId":"amzn1.ask.account.<user id>
}
},
"request":{
"type":"CanFulfillIntentRequest",
"requestId":"EdwRequestId.<request id>",
"intent":{
"name":"Myname"
},
"locale":"en-US",
"timestamp":"2018-10-12T09:36:31Z"
},
"context":{
"AudioPlayer":{
"playerActivity":"IDLE"
},
"System":{
"application":{
"applicationId":"amzn1.ask.skill.<application id>"
},
"user":{
"userId":"amzn1.ask.account.<user id>"
},
"device":{
"supportedInterfaces":{
}
}
}
},
"version":"1.0"
}
我已经实施CanfulFillIntentRequest
了很多天,但到目前为止没有运气。我正在使用alexa-sdk-nodejs
v2。我无法为CanfulFillIntent
. 我尝试以这些文档中所述的确切方式实施它。
https://developer.amazon.com/docs/custom-skills/understand-name-free-interaction-for-custom-skills.html
https://developer.amazon.com/docs/custom-skills/implement-canfulfillintentrequest -for-name-free-interaction.html。
这是我的响应处理程序。
return handlerInput.responseBuilder
.withCanFulfillIntent(
{
'canFulfill': 'MAYBE',
'slots':{
}
})
.getResponse();
}
const HelloWorldIntentHandler = {
canHandle(handlerInput) {
//return handlerInput.requestEnvelope.request.type === 'IntentRequest' || 'CanFulfillIntentRequest'
return handlerInput.requestEnvelope.request.type === 'CanFulfillIntentRequest'
// && handlerInput.requestEnvelope.request.intent.name === 'Myname' || 'HotelIntent';
},
handle(handlerInput) {
if(handlerInput.requestEnvelope.request.intent.name === 'Myname'){
return MynameHandler.handle(handlerInput);
}
};
当我在手动 JSON 中运行 JSON 代码时,它不响应CanfulFillIntent
请求并且被重定向到错误处理程序代码。