谷歌预测API v1.6 -我如何使服务器到服务器的调用



我正在尝试使用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   
   });
});

相关内容

最新更新