完成授权部分并正常工作(没有错误等)。之后,我想从驱动器的根目录中获取文件夹和文件。首先开始获取根目录中的文件(该过程与使用子目录获取文件夹非常相似)。
我设计了以下代码(根据产生类似结果的谷歌示例),这是我的驱动器类的一部分:
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'
时,我会得到四个已删除的文件(我以前从驱动器中删除过)。
有人能解释一下为什么我没有看到/得到任何文件吗?也改变了公众的权利,但似乎没有任何区别。
与以下问题相同的情况:谷歌驱动api,javascript列表文件不返回
我需要在授权时将路径"drive
"添加到作用域中,我只有drive.file
,它仅用于创建/编辑文件。奇怪的是,当你没有查看文件的权限时,API会返回删除的文件,我认为这是API中的一个bug(严重的bug)。
在谷歌驱动器上发布此错误:https://productforums.google.com/forum/#!searchin/drive/security$20发布$20权限$20查看/drive/ppujKxTz9FU/cUarGIl_Ah0J