【问题标题】:Google API Batch returns 401Google API 批处理返回 401
【发布时间】:2018-11-14 05:35:26
【问题描述】:

一次在一个批次中执行两个或多个请求会导致每个请求出现 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"
 }
}

只使用一个 batch.add 效果很好。这对我来说没有任何意义。

为什么?我做错了什么?

【问题讨论】:

  • 我认为您的问题中的 sn-p 是正确的。虽然我不确定这是否是直接的解决方案,例如,减少返回的数据大小如何?这是gapi.client.drive.files.list({'pageSize': 1, 'fields': "files(name)"})。这样,每个请求只返回一个文件信息。如果这不是解决方案,您能否提供包含 OAuth2 流程的脚本?
  • 查询只是一个简单的例子。批处理不起作用,这就是问题所在。
  • 在我的环境中,我无法复制您的情况。我真的很抱歉我帮不上忙。

标签: javascript google-api google-api-client google-api-js-client


【解决方案1】:

直接来自文档handle errors

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

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "authError",
        "message": "Invalid Credentials",
        "locationType": "header",
        "location": "Authorization",
      }
    ],
    "code": 401,
    "message": "Invalid Credentials"
  }
}

建议的操作:使用长期刷新令牌刷新访问令牌。如果失败,请按照Authorizing Your App with Google Drive 中的说明引导用户通过 OAuth 流程。

Batch 文档。

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'});

【讨论】:

  • 我写道:只使用一个 batch.add 就可以了。这对我来说没有任何意义。
  • @Viatorus 不会更改错误消息的含义或错误消息的可能解决方案。批处理中的每个请求都必须经过身份验证。不是单个批处理请求本身。
  • 那么我必须做些什么来验证批处理请求中的每个请求?我有来自用户的有效访问令牌。否则我无法提出任何要求。
  • 我认为您应该尝试阅读有关批处理应该如何工作的文档,您的代码看起来不像文档
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 2014-05-28
  • 2011-12-07
  • 2019-11-05
相关资源
最近更新 更多