我正在尝试使用google预测API V1.6。我遵循了入门部分,并使用浏览器API创建了一个模型。
现在,我的模型已经准备好了,我从探索者那里得到的预测结果是令人满意的。
现在,当我试图前进(使用nodeJS),我迷路了…我看过这个库,但无法弄清楚如何在没有客户端同意屏幕的情况下呼叫prediction.trainedmodels.predict
。
正如您在这里看到的,这个调用需要授权,这意味着用户需要为应用程序授予特定的作用域。
这是无法绕过的,所以如果没有同意屏幕,就没有真正的方法可以获得授权的方法。
遇到同样的问题,我发现:
1您需要创建一个服务帐户。
- 进入Google开发者控制台
- 点击api &auth>凭据
- 为服务帐户添加凭据,下载生成的服务帐户的公钥/私钥
建议:您的应用程序可以通过以下方式完成这些任务使用针对您的语言的Google api客户端库,或者直接使用使用HTTP与OAuth 2.0系统交互。然而,服务器到服务器身份验证交互机制要求应用程序创建和加密签名JSON Web令牌(jwt),并且很容易犯严重的错误,从而导致严重的后果对应用程序安全性的影响。
因此,我们强烈建议您使用库,例如Google api客户端库,它抽象了加密从您的应用程序代码
- 在您的服务器代码中,您应该遵循以下步骤
- 创建一个JSON Web令牌(JWT,发音为"jot"),其中包括一个标头,一个声明集和一个签名。
- 向Google OAuth 2.0授权服务器请求访问令牌
- 处理授权服务器返回的JSON响应。
使用google API node js库更容易处理授权。
var key = require('path/to/key.json');
var jwtClient = new google.auth.JWT(key.client_email, null, key.private_key, [scope1, scope2], null);
jwtClient.authorize(function(err, tokens) { if (err) {
console.log(err);
return;
}
// Make an authorized request to list Drive files.
drive.files.list({ auth: jwtClient }, function(err, resp) {
// handle err and response
});
});