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 を使用せずに、まったく同じ呼び出し (drive.files.get) をまったく同じ withAuthClient(oauth2Client) で実行すると、次のコードは期待どおりに動作します。以下はエラーになりません。渡される oauth2Client 変数はまったく同じで、同じスコープ内にあることに注意してください。
client.drive.files.get({fileId:fid})
.withAuthClient(oauth2Client)
.execute(function(err, results){
[...etc...]
ここで何が起こっているのかについてのアイデアはありますか?
ありがとう!