【问题标题】:Google prediction API v1.6 - How can I make server to server call?Google 预测 API v1.6 - 如何进行服务器到服务器调用?
【发布时间】:2016-01-21 20:39:08
【问题描述】:
我正在试验谷歌预测 API V1.6。我遵循了getting started 部分,并使用explorer API 创建了一个模型。
现在,我的模型已准备就绪,我从资源管理器中得到的预测结果令人满意。
现在,当我尝试继续前进(使用 nodeJS)时,我迷路了……我查看了this library,但不知道如何在没有客户端的情况下拨打prediction.trainedmodels.predict侧面同意屏幕。
【问题讨论】:
标签:
node.js
oauth-2.0
google-api
server
google-prediction
【解决方案1】:
遇到同样的问题,这是我发现的:
1 您需要创建一个服务帐户。
建议:您的应用程序可以通过以下方式完成这些任务
使用适用于您的语言的 Google API 客户端库,或直接通过
使用 HTTP 与 OAuth 2.0 系统交互。然而
服务器到服务器身份验证交互的机制需要
用于创建和加密签名 JSON Web 令牌的应用程序
(JWT),并且很容易犯严重的错误,可能会产生严重的
影响您的应用程序的安全性。
因此,我们强烈建议您使用库,例如
Google API 客户端库,将密码学抽象出来
来自您的应用程序代码。
- 在您的服务器代码中,您应该遵循以下步骤
- 创建 JSON Web 令牌(JWT,发音为“jot”),其中包括标头、声明集和签名。
- 从 Google OAuth 2.0 授权服务器请求访问令牌。
- 处理授权服务器返回的 JSON 响应。
使用google API node js lib 更轻松地处理身份验证。
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
});
});
【解决方案2】:
如您所见here,此调用需要授权,这意味着用户需要将某些范围授予应用程序。
这是无法绕过的,因此没有真正的方法可以在没有同意屏幕的情况下获得授权方法。