我想使用Amazon Profile API向網站發出GET請求。我正在嘗試執行本文最後一個代碼塊中描述的內容:https://developer.amazon.com/blogs/post/Tx3CX1ETRZZ2NPC/Alexa-Account-Linking-5-Steps-to-Seamlessly-Link-Your-Alexa-Skill-with-Login-wit(文章的最後一部分),它只是不會發生。我的回調函數似乎永遠不會被調用。如何從Alexa Lambda函數調用Web服務
我已經添加了所需的context.succeed(),實際上是最新版本,我仍然沒有得到結果。我知道url是好的,因爲我可以將它複製/粘貼到瀏覽器中,並返回預期結果。
這是一個關於在回調中使用適當的上下文函數調用的回答,我曾嘗試過。 Why is this HTTP request not working on AWS Lambda?
我沒有使用VPC。
我在做什麼錯?我覺得自己像一個白癡,因爲我一直在研究這個問題,並嘗試了兩天的解決方案。我記錄完整的URL,當我將其複製/粘貼到日誌文件中並放入瀏覽器窗口中時,我確實得到了有效的結果。謝謝你的幫助。
下面是代碼:
function getUserProfileInfo(token, context) {
console.log("IN getUserProfileInfo");
var request = require('request');
var amznProfileURL = 'https://api.amazon.com/user/profile?access_token=';
amznProfileURL += token;
console.log("calling it");
console.log(amznProfileURL);
console.log("called it");
request(amznProfileURL, function(error, response, body) {
if (!error && response.statusCode == 200) {
var profile = JSON.parse(body);
console.log("IN getUserProfileInfo success");
console.log(profile);
context.callbackWaitsForEmptyEventLoop = false;
callback(null, 'Success message');
} else {
console.log("in getUserProfileInfo fail");
console.log(error);
context.callbackWaitsForEmptyEventLoop = false;
callback('Fail object', 'Failed result');
}
});
console.log("OUT getUserProfileInfo");
}
這是日誌輸出我得到的CloudWatch:
2017-03-08T22:20:53.671Z 7e393297-044d-11e7-9422-39f5f7f812f6 IN getUserProfileInfo 2017-03-08T22:20:53.728Z 7e393297-044d-OUT 11e7-9422-39f5f7f812f6 getUserProfileInfo
也許你應該張貼日誌輸出,忽略任何祕密。 – Paul
我已經添加了相關的日誌輸出。 – PaulPerry