使用REST API和Node.JS实现AWS Lambda函数
问题描述:
我刚开始学习如何使用Alexa技能工具包和AWS Lambda开发Amazon Alexa技能。我不太明白如何调用API并从中检索数据。我发现从约旦利视频这个模板代码:使用REST API和Node.JS实现AWS Lambda函数
var endpoint = ""; // ENDPOINT GOES HERE
var body = "";
https.get(endpoint, (response) => {
response.on('data', (chunk) => body += chunk);
response.on('end',() => {
var data = JSON.parse(body);
var subscriberCount = data.items[0].statistics.subscriberCount;
context.succeed(
generateResponse(
buildSpeechletResponse(`Current subscriber count is ${subscriberCount}`, true),
{}
)
);
});
});
我明白endpoint
变量将举行API的网址,但我不确定休息。在这段代码中,我认为他使用YouTube API作为当前用户数。例如,如果我想使用Dark Sky API来提取天气信息,那么我将如何使用这种类似的格式来解决这个问题?
答
差不多相同。
const https = require('https');
var body = "";
const url = "https://api.darksky.net/forecast/your-secret-key/37.8267,-122.4233"
var req = https.request(url, (res) => {
res.on('data', (d) => {
body += d;
});
res.on('end',() => {
var data = JSON.parse(body);
console.log("daily weather: ", data.daily);
});
});
req.on('error', (e) => {
console.error(e);
});
req.end();
当我进入服务模拟器这一点,它说:“响应无效” – ecain
上面的代码是为了回应你使用黑暗的天空API的例子的请求。您必须拥有自己的密钥并将其替换为网址。如果你使用'node yourFileName.js'测试,你会看到它的工作原理。 – Brian