Javascript 谷歌API批量返回401

Javascript 谷歌API批量返回401,javascript,google-api,google-api-client,google-api-js-client,Javascript,Google Api,Google Api Client,Google Api Js Client,一次在一个批处理中执行两个或多个请求将导致每个请求的401 const batch = gapi.client.newBatch(); batch.add(gapi.client.drive.files.list()); batch.add(gapi.client.drive.files.list()); batch.then((e) => { console.log(e); }); 错误是: { "error": { "errors": [ { "domain"

一次在一个批处理中执行两个或多个请求将导致每个请求的401

const batch = gapi.client.newBatch();
batch.add(gapi.client.drive.files.list());
batch.add(gapi.client.drive.files.list());
batch.then((e) => {
  console.log(e);
});
错误是:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "authError",
    "message": "Invalid Credentials",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Invalid Credentials"
 }
}
只使用一批。添加工作非常好。这对我来说毫无意义


为什么??我做错了什么?

直接从文档中获取

401:无效凭据 无效的授权标头。您正在使用的访问令牌已过期或无效

建议的操作:使用长寿命刷新令牌刷新访问令牌。如果失败,请引导用户通过OAuth流,如中所述

文件

var searchRequest = function(name) {
  return gapi.client.request({
    'path': 'plus/v1/people',
    'params': {'query': name}
   });
};
var searchAlvin = searchRequest('Alvin');
var searchSimon = searchRequest('Simon');

// Adding just the request
batch.add(searchAlvin);
// Adding the request with an ID
batch.add(searchSimon, {'id': 'searchSimon'});

我认为你问题中的片段是正确的。尽管我不确定这是否是一个直接的解决方案,例如,减少返回的数据大小如何?它是
gapi.client.drive.files.list({'pageSize':1,'fields':“files(name)”})
。这样,每个请求只返回文件的一个信息。如果这不是解决方案,您可以提供包含OAuth2进程的脚本吗?查询只是一个简单的示例。批处理不工作,这就是问题所在。在我的环境中,我无法复制您的情况。我真的很抱歉我帮不上忙。我写道:只使用一批。添加效果非常好。这对我来说没有任何意义。@Viatorus不会改变错误消息的含义或错误消息的可能解决方案。批处理中的每个请求都必须经过身份验证。不是单个批处理请求本身。那么我需要做什么来验证批处理请求中的每个请求?我有一个来自用户的有效访问令牌。否则,我无法执行任何请求。我认为您应该尝试阅读有关如何支持批处理的文档,但您的代码看起来不像文档
var searchRequest = function(name) {
  return gapi.client.request({
    'path': 'plus/v1/people',
    'params': {'query': name}
   });
};
var searchAlvin = searchRequest('Alvin');
var searchSimon = searchRequest('Simon');

// Adding just the request
batch.add(searchAlvin);
// Adding the request with an ID
batch.add(searchSimon, {'id': 'searchSimon'});