谷歌驱动器:使用javascript api获取(根)文件和文件夹(仅获取驱动器上已删除的文件)

时间:2013-08-12 02:14:38

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

让授权部分完成并且正常工作(没有错误等)。在此之后,我想从驱动器的根目录中获取文件夹和文件。首先从根目录中获取文件(该过程非常类似于使用子项来获取文件夹)。

我设计了以下代码(根据产生类似结果的google示例),这是我的驱动器类的一部分:

o.cdGetCloudFiles = function(fCallback, sFolderId )
{
  var oDefQ = {q:'trashed=false', maxResults:1000, folderId:(typeof sFolderId == 'string')?sFolderId:'root'},
      fGetFiles = function(request, result) 
      {
        request.execute(function(resp) 
        {
            if( resp.items instanceof Array )   
            {
              result = result.concat(resp.items);
              if( resp.nextPageToken ) 
              { // Get next file and 'break' this function 
                 return fGetFiles(gapi.client.drive.files.list($j.extend(oDefQ,{'pageToken':resp.nextPageToken})), result); 
              } 
            }

            fCallback(result.length?result:false);
        });
      };

  fGetFiles(gapi.client.drive.files.list(oDefQ), []);
};

原始代码可在此处找到:https://developers.google.com/drive/v2/reference/files/list

驱动器的根目录中有两个文件和一个目录:

[folder] Alice Deejay - Who Needs Guitars Anyway
[file] A day without rain.mp3
[file] Discobitch - C'est beau la bourgeoisie.mp3

问题是我没有使用上面的示例获取任何文件。当我将'trashed=false'更改为'trashed=true'时,我会收到四个已删除的文件(我之前从驱动器中删除)。

有人可以解释为什么我没有看到/获取任何文件吗?也改变了对公众的权利,但似乎没有任何区别。

1 个答案:

答案 0 :(得分:1)

与以下问题相同的情况: google drive api, javascript list files returns nothing

我需要在授权时将范围'drive'添加到范围,我只有drive.file,它只打算创建/编辑文件。奇怪的是,当你没有查看文件的权限时,API会返回已删除的文件,我认为这是API中的一个错误(严重的错误)。

在google驱动器上发布此错误: https://productforums.google.com/forum/#!searchin/drive/security $ $ 20issue $ 20permission 20view /驱动/ pupjKxTz9FU / cUarGIl_Ah0J