Здравствуйте! Я хочу подключить своего помощника Уотсона к устройству alexa, для этого мне понадобится набор навыков для разработки Amazon и лямбда-амба AWS. Но я не могу подключиться к Уотсону, потому что у меня возникли проблемы с моими обещаниями, и я не вижу журналы своего кода в консоли разработчика Amazon. А мой помощник работает над приложением nodeJs.
Есть несколько кодов, которые я пробовал:
const MyNameIsIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'SearchIntent';
},
async handle(handlerInput) {
assistant.createSession({
assistant_id: assistant_id
})
.then(res => {
session_id = res.session_id;
})
.catch(err => {
console.log(err);
});
assistant.message({
assistant_id: assistant_id,
session_id: session_id,
input: {
'message_type': 'text',
'text': "hello"
}
})
.then(res => {
console.log(JSON.stringify(res, null, 2));
speechText = res.output.generic.response.text;
})
.catch(err => {
speechText = err;
});
}, function(err){
speechText = "Problem with Api call";
});
return handlerInput.responseBuilder
.speak(speechText)
.getResponse();
},
};
И другой способ с обещанием:
try{
let res = await assistant.createSession({
assistant_id: assistant_id
});
session_id = res.session_id;
let message = await assistant.message({
assistant_id: assistant_id,
session_id: session_id,
input: {
'message_type': 'text',
'text': "hello"
}
});
speechText = message.output.generic.response.text;
}catch(err){
speechText = err;
}
Результаты speechText должны дать мне «Добрый день», это ответ от Watson. Но теперь Алекса говорит: «Извините, я не могу понять команду. Пожалуйста, скажите еще раз».
У вас есть другие способы попробовать это с другим способом выполнить обещание? спасибо!