【问题标题】: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 developers console
    • 点击 APIs & auth > Credentials
    • 为服务帐号添加凭据,下载生成的服务帐号的公钥/私钥

    建议:您的应用程序可以通过以下方式完成这些任务 使用适用于您的语言的 Google API 客户端库,或直接通过 使用 HTTP 与 OAuth 2.0 系统交互。然而 服务器到服务器身份验证交互的机制需要 用于创建和加密签名 JSON Web 令牌的应用程序 (JWT),并且很容易犯严重的错误,可能会产生严重的 影响您的应用程序的安全性。

    因此,我们强烈建议您使用库,例如 Google API 客户端库,将密码学抽象出来 来自您的应用程序代码。

    1. 在您的服务器代码中,您应该遵循以下步骤
      • 创建 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,此调用需要授权,这意味着用户需要将某些范围授予应用程序。

      这是无法绕过的,因此没有真正的方法可以在没有同意屏幕的情况下获得授权方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-30
        • 2013-07-03
        • 2019-07-23
        • 2020-11-17
        • 1970-01-01
        • 2020-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多