我正在尝试在NodeJS googleapis库(https://github.com/google/google-api-nodejs-client)中使用(实验性)newBatchRequest方法,但返回的结果都会从Google返回401 Invalid Credentials错误。使用完全相同的auth客户端(相同凭据)完全相同的调用在不使用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...]
关于可能会发生什么的任何想法?
谢谢!