1

我正在使用googleapis库并使用 JWT 成功验证了我的服务帐户凭据。然后我找到了google-cloud库,它具有预测 API 的特定模块,但未能验证相同的服务帐户凭据。

我不使用 Google Computing Engine 或 App Engine 并且在本地开发中工作

我遵循文档中的代码:

var key = require('./MY_SERVICE_ACCOUNT_CREDENTIALS.json')
var prediction = require('@google-cloud/prediction')({
  projectId: 'MY_PROJECT_ID',
  credentials: key
})

prediction.getModels((err, models) => {
  if (err) {
    console.log(err)
    return
  }

  console.log('Models:', models)
})

它返回:

{ ApiError: Access to project denied: user requires read permissions.                                              
    at [here goes stack trace]                                                                                   
  code: 401,                                                                                                       
  errors:                                                                                                          
   [ { domain: 'global',                                                                                           
       reason: 'authError',                                                                                        
       message: 'Access to project denied: user requires read permissions.',                                       
       locationType: 'header',                                                                                     
       location: 'Authorization' } ],                                                                              
  response: undefined,                                                                                             
  message: 'Access to project denied: user requires read permissions.' } 

我不知道哪里出了问题,我不确定我是否需要对其进行身份验证googleapis并将其与google-cloud或等集成。它也缺乏样本

4

1 回答 1

1

所以我知道这已经有几个月了,但这个错误很容易解释,但我自己也遇到了这个问题。

本质上,您的服务密钥没有获得适当的权限,无法从您的项目中读取(或写入)信息。在 Google Cloud Console 的IAM & Admin下查找您的服务帐户,然后将Project → Editor和/或Project → Viewer添加到您创建的服务帐户。添加这些权限后,请确保按“保存”,然后等待大约 20 秒以反映这些权限。

于 2017-03-01T15:27:41.367 回答