2017-03-09 69 views
1

我想使用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

+0

也許你應該張貼日誌輸出,忽略任何祕密。 – Paul

+0

我已經添加了相關的日誌輸出。 – PaulPerry

回答