Я работаю над «Умением» для нового Amazon ECHO. Это умение позволит пользователю спросить Алекса о статусе и эффективности солнечной системы Enphase. Alexa ответит результатами, полученными из API-интерфейса Enphase, основанного на JSON. Например, пользователь может спросить,Как обратиться к стороннему JSON API из функции AWS Lambda
"Alexa. Ask Enphase how much solar energy I have produced in the last week."
ALEXA <"Your array has produced 152kWh in the last week.">
Проблема это было лет с тех пор я запрограммирован в JavaScript, и это мой первый раз с помощью AWS Lambda. Я не очень успешно нашел какую-либо информацию о том, как встраивать запрос JSON на сторонний сервер в функцию AWS Lambda. Вот соответствующая секция кода в моей функции лямбда:
/**
* Gets power from Enphase API and prepares speach
*/
function GetPowerFromEnphase(intent, session, callback) {
var Power = 0;
var repromptText = null;
var sessionAttributes = {};
var shouldEndSession = false;
var speechOutput = "";
//////////////////////////////////////////////////////////////////////
// Need code here for sending JSON query to Enphase server to get power
// Request:
// https://api.enphaseenergy.com/api/v2/systems/67/summary
// key=5e01e16f7134519e70e02c80ef61b692&user_id=4d7a45774e6a41320a
// Response:
// HTTP/1.1 200 OK
// Content-Type: application/json; charset=utf-8
// Status: 200
// {"system_id":67,"modules":35,"size_w":6270,"current_power":271,
// "energy_today":30030,"energy_lifetime":59847036,
// "summary_date":"2015-03 04","source":"microinverters",
// "status":"normal","operational_at":1201362300,
// "last_report_at":1425517225}
//////////////////////////////////////////////////////////////////////
speechOutput = "Your array is producing " + Power + " kW, goodbye";
shouldEndSession = true;
// Setting repromptText to null signifies that we do not want to reprompt the user.
// If the user does not respond or says something that is not understood, the session
// will end.
callback(sessionAttributes,
buildSpeechletResponse(intent.name, speechOutput, repromptText,
shouldEndSession));
}
Некоторые рекомендации будут высоко оценены. Даже если кто-то может указать мне в правильном направлении. Благодаря!
Как установить запрос для использования в узле. js Лямбда код? – Darko
Вы должны включить его (node_modules) вместе с вашим index.js в загружаемый zip-файл. Вы не можете этого сделать, если вы просто редактируете код в консоли aws. Это сообщение об этом: https://aws.amazon.com/blogs/compute/nodejs-packages-in-lambda/ или вы можете использовать этот стартер, у которого есть встроенные команды, которые закроют его для вас: https://github.com/ryanray/aws-lambda-starter – Ryan