Google Drive API示例代码不起作用-node.js

问题描述 投票:0回答:1

我正在尝试使用Google Drive API从Google Drive文件夹中获取所有文件。问题是我有大约6000个文件,但maxResults可以设置为1000。我知道我应该使用nextPageToken,但是即使使用其示例代码也无法使用。

我尝试了文档中的示例代码,但是它仅返回初始页面的结果,并且不会遍历其他页面。另外,在其代码中,值res.nextPageToken应该是res.data.nextPageToken,而res.files应该是res.data.files。

var pageToken = null;
// Using the NPM module 'async'
async.doWhilst(function (callback) {
  drive.files.list({
    q: "mimeType='image/jpeg'",
    fields: 'nextPageToken, files(id, name)',
    spaces: 'drive',
    pageToken: pageToken
  }, function (err, res) {
    if (err) {
      // Handle error
      console.error(err);
      callback(err)
    } else {
      res.files.forEach(function (file) {
        console.log('Found file: ', file.name, file.id);
      });
      pageToken = res.nextPageToken;
      callback();
    }
  });
}, function () {
  return !!pageToken;
}, function (err) {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    // All pages fetched
  }
})

有人知道代码出了什么问题,为什么它不遍历具有nextPageToken的所有页面?

Google API文档和示例代码在这里:https://developers.google.com/drive/api/v3/search-files

感谢您的帮助

javascript node.js google-api google-drive-api
1个回答
0
投票

我在尝试使用此代码时遇到问题。

我已下载aSync与“ node npm install async”它没有帮助

我收到以下错误:

at C:\code\node_modules\googleapis-common\build\src\apirequest.js:48:53
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)

(node:80696)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。 (拒绝ID:80)

async.doWhilst(function (callback) {
^

ReferenceError: async is not defined
    at listFiles (C:\code\files.js:86:1)
    at C:\code\files.js:44:5
[90m    at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:61:3)[39m

我正在尝试列出超过4000个遭到修改的文件攻击,这些修改已复制到Google驱动器中。尽管有实时测试api,但我无法获得超过100个文件,但我可以手动将其列出超过1000个文件,这非常令人沮丧!

© www.soinside.com 2019 - 2024. All rights reserved.