使用服务帐号进行 Google 身份验证失败(Node.js)



我正在尝试一个(node.js)示例应用程序来针对Google API进行身份验证,然后发出Google云端硬盘请求。我尝试运行的示例来自使用 jwt 的 googleapis 节点.js库的 github 自述文件:

var jwtClient = new googleapis.auth.JWT(
  '123...xyz@developer.gserviceaccount.com',
  './key.pem',
  null,
  ['https://www.googleapis.com/auth/drive'],
  'my.personal@gmail.com');
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
  });
});

身份验证失败,并显示:

{ error: 'unauthorized_client',
  error_description: 'Unauthorized client or scope in request.' }

我不是100%确定"my.personal@gmail.com"。使用我的客户端 ID,我收到错误"无效的模拟 prn 电子邮件地址"。

我已根据文档创建了服务帐户客户端 ID、服务电子邮件和证书指纹。我必须指定其他内容吗?我的范围不正确吗?如果是,应该是什么?

Google

Drive API 在 Google Developer Console 中启用。我还激活了试用帐户。

呃,

在尝试了很多事情之后,结果相当简单:在没有"模拟"的情况下执行上述示例 - 电子邮件它只是工作。法典:

var jwtClient = new googleapis.auth.JWT(
  '123...xyz@developer.gserviceaccount.com',
  './key.pem',
  null,
  ['https://www.googleapis.com/auth/drive']);

自述文件中的示例可作为示例(此处)中的完整文件提供。

相关内容

  • 没有找到相关文章

最新更新