我试图在我的流星应用程序中使用AlchemyAPI来获取一段文字的情绪。我正在使用HTTP建议使用API建议的'POST'来进行服务器到服务器的调用,但是我得到了一个'invalid-api-key'响应。
var alchemyURL = Meteor.settings.alchemyUrl;
var postData = {
'apikey': Meteor.settings.alchemyUrl,
'text': txt,
'outputMode': 'json'
};
var options = {
data: postData
};
var sentimentData = HTTP.call('POST', alchemyURL, options);
console.log(sentimentData);
我已经找到了答案,因此将其发布在下面。
答案 0 :(得分:3)
事实证明,Meteor的HTTP包需要被赋予用于在数据上实现表单url-encoding的标头。此外,数据对象需要在'params'中传递,而不是在'data'中传递。下面给出了要使用的正确代码段。
var alchemyURL = Meteor.settings.alchemyUrl;
var postData = {
'apikey': Meteor.settings.alchemyUrl,
'text': txt,
'outputMode': 'json'
};
var options = {
params: postData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
};
var sentimentData = HTTP.call('POST', alchemyURL, options);
console.log(sentimentData);