【发布时间】:2015-05-30 04:53:26
【问题描述】:
我在发布预测请求时遇到错误,但是从在线界面(来自 Google 的 API 参考页面)发布相同的请求时效果很好。 我还在 Git 存储库上发布了一个新问题,但似乎没有人关注这些问题。谷歌多么蹩脚!!
我正在发布预测请求,如下所示:
var parameters = {
auth: jwtClient,
project: googleProjectID,
id: 'interest_classifier',
input: {
csvInstance: ["country united states", "/location/location"]
}
};
return prediction.trainedmodels.predict(parameters, function(err, response) {
if (err) {
logger.info(null, "prediction err ", err);
}
logger.info(null, "response from predict ", response);
return callback(null, response);
});
我明白了:
err { [Error: Input data invalid.]
code: 400,
errors:
[ { domain: 'global',
reason: 'invalidValue',
message: 'Input data invalid.' } ] }
澄清一下:我的训练模型包含一个值和两个文本特征。 同样,当从在线工具(客户端)运行它时,它运行良好,只有当我从我的 node.js 服务器运行它时,它才会失败。
那是怎么回事?有谁知道? 这可能是一些编码问题吗?请求标头?
编辑:
这就是我的身份验证方式:
var jwtClient = new google.auth.JWT('*****@developer.gserviceaccount.com', 'keys/key.pem', null, ['https://www.googleapis.com/auth/prediction']);
jwtClient.authorize(function(err, tokens) {
logger.info(null, "authorizing");
if (err) {
logger.info(null, "error ", err);
} else {
return logger.info(null, "authenticated ", tokens);
}
});
【问题讨论】: