带分页的files.list如何与批处理相结合



我有一个对文件夹'x'中文件的gap(v2)批处理请求。此文件夹可能有分页的内容列表。

我尝试过递归调用files.list api(如gap v2文档中所示),pageToken值设置为nextPageToken,但返回"Invalid Token"。

var batch = gapi.client.newBatch();
var request = gapi.client.drive.files.list();
batch.add(request, {'id': 'mySearch');
batch.then(handleResponse);
function handleResponse(resp) {
// gets the first set of 100 files fine
console.log(resp.result['mySearch'].result.items); // prints array of 100
// handle nextPageToken here <- this is what I want to do
}

我需要文件夹"x"中所有项目的数组,比如435个。我该怎么做?

文档指出,以下可能是您的"无效令牌"错误的原因:

Google Drive应用程序应考虑API返回HTTP 401或调用驱动器API时的HTTP 403响应。这些错误可能指示以下任一项:

  • 代币到期
  • 令牌吊销。这将导致访问令牌和刷新令牌都停止工作
  • 令牌未被授权用于所需的作用域
  • 未使用OAuth 2.0协议正确授权请求

令牌到期可以通过刷新凭据来处理。如果调用失败,出现"无效凭据"错误,问题可能是用户已吊销访问权限。对于已吊销的访问权限和所有问题除了令牌过期之外,最好的补救措施是重定向用户通过OAuth对话框重新授予访问权限。

然后,您可以查看此链接以了解Files: list方法的实现,从而得到相应的指导。

为了更多地享受Good Drive API的好处,您可以迁移到Drive API v3。

驱动器API v3和v2之间的差异主要是字段名称和删除重复功能。