0

我正在尝试使用 NodeJS googleapis 库(https://github.com/google/google-api-nodejs-client)中的(实验性)newBatchRequest 方法,但返回的结果全部返回来自 Google 的 401 Invalid Credentials 错误。在不使用 newBatchRequest 发送单个请求时,具有完全相同的身份验证客户端(相同的凭据)的完全相同的调用按预期工作。

这是批处理请求代码:

var c = client.newBatchRequest()
async.each(files, function(fileid, cb) {
  c.add(client.drive.files.get({fileId:fileid}));
  cb();
},
function(err) {
  console.log('client is')
  console.log(oauth2Client)
  c.withAuthClient(oauth2Client).execute(function(err, results) {
    console.log(err)
    console.log(results);
  })
})

这会在 console.log 中产生一个包含以下错误的数组:

{ errors: [ [Object] ],
    code: 401,
    message: 'Invalid Credentials' }

在不使用 batchRequest 并使用完全相同的 withAuthClient(oauth2Client) 运行完全相同的调用 (drive.files.get) 的情况下,以下代码将按预期运行。以下不会产生错误。请注意,传入的 oauth2Client 变量完全相同,并且在相同的范围内。

client.drive.files.get({fileId:fid})
    .withAuthClient(oauth2Client)
    .execute(function(err, results){
       [...etc...]

关于这里可能发生什么的任何想法?

谢谢!

4

0 回答 0