Я занимаюсь разработкой простого чат-бота на Amazon Alexa. Идея состоит в том, чтобы узнать, есть ли пункт в меню в определенном магазине.
function httpGet() {
return new Promise(((resolve, reject) => {
const options = {
headers: {
'auth_key':'xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx'
}
};
http.get("http://example.com/lookup/api/getitemlist?item=cake&storeid=50", options, (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
resolve(JSON.parse(data));
});
}).on('error', (err) => {
reject(err);
});
}));
}
Я слежу за документацией по nodejs docs
API хорошо работает впочтальон, где auth_key передается в заголовке.
Вот ошибка от amazon cloudwatch
API отвечает сообщением об ошибке, когда auth_key отсутствует. Я что-то пропустил? Из прочтения документации. Я думал, что это будет работать.
GetItemIntentHandler. Я должен написать больше, чтобы справиться с ответом. Пока я только регистрирую это. Здесь я вызываю функцию httpGet ();
const GetItemIntentHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'GetItemIntent';
},
async handle(handlerInput){
const item = handlerInput.requestEnvelope.request.intent.slots.Item.value;
const response = await httpGet();
console.log("response reached us");
console.log(response);
return handlerInput.responseBuilder
.speak(` ${item}`)
.reprompt("What would you like?")
.getResponse();
}
};