Я пытаюсь добавить предмет в свой проект Todoist с помощью навыка Alexa в AWS Lambda.Я очень новичок во всех этих технологиях, так что прости меня, если исправление невероятно очевидно.Когда я прошу Алексу вызвать мой навык addZipcode, это не удастся.Вот что у меня есть (исключая некоторые вещи, которые есть во всех функциях Alexa Lambda):
Alexa stuff
...
const handlers = {
'LaunchRequest': function() {
this.emit('AMAZON.HelpIntent');
},
'addZipcode': function() {
const newZip = this.event.request.intent.slots.zipcode.value;
const speechOutput = newZip;
var http = require("https");
function postZip(newZip) {
var options = {
"method": "POST",
"hostname": [
"beta",
"todoist",
"com"
],
"path": [
"API",
"v8",
"tasks"
],
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer " + token
}
};
var req = http.request(options, function(res) {
var chunks = [];
res.on("data", function(chunk) {
chunks.push(chunk);
});
res.on("end", function() {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write(JSON.stringify({ content: newZip, project_id: XXXXXXXXXX }));
req.end();
}
postZip(newZip);
this.response.cardRenderer(SKILL_NAME, newZip);
this.response.speak(speechOutput);
this.emit(':responseReady');
},
.... cont
Я получаю полученную ошибку при попытке запустить навык с Alexa:
Response:
{
"errorMessage": "hostHeader.replace is not a function",
"errorType": "TypeError",
"stackTrace": [
"Agent.addRequest (_http_agent.js:130:39)",
"new ClientRequest (_http_client.js:159:16)",
"Object.exports.request (http.js:31:10)",
"Object.exports.request (https.js:199:15)",
"postZip (/var/task/index.js:72:28)",
"Object.addZipcode (/var/task/index.js:88:9)",
"emitNone (events.js:86:13)",
"AlexaRequestEmitter.emit (events.js:185:7)",
"AlexaRequestEmitter.EmitEvent (/var/task/node_modules/alexa-sdk/lib/alexa.js:216:10)",
"AlexaRequestEmitter.ValidateRequest (/var/task/node_modules/alexa-sdk/lib/alexa.js:181:23)"
]
}
Я пытался найти дополнительную информацию о hostHeader.replace или даже просто hostHeader, но безрезультатно.Когда я окружаю свою функцию postZip
exports.handler = function(event, context, callback) {}
, этот навык фактически работает, но запрос Post не выполняется (как, например, новый почтовый индекс не добавляется в качестве новой задачи в моем Todoist).Я почти уверен, что сам код запроса Post правильный, потому что я запустил его через Postman, и был добавлен почтовый индекс.
Пожалуйста, помогите мне понять, почему он не работает.