我尝试使用Drive REST api来获取我的共享文件。 https://www.googleapis.com/drive/v2/files?q=sharedWithMe%3Dtrue
我无法获得超过100个结果。我正在使用授权: https://www.googleapis.com/auth/drive
答案 0 :(得分:2)
我要复制并粘贴我写的here相同的回复。
我面临同样的问题,所以我一直在做一些测试,这就是我发现的:
如果我尝试使用字段:"文件,nextPageToken"的files.list,我只能获得100个文件。
如果我尝试使用字段:"文件(名称,ID,等,父母),nextPageToken",我尝试使用files.list获得460个文件。
如果我尝试使用字段:"文件(名称,ID,等),nextPageToken" 没有父母字段,我收到1000个文件。
如果我尝试使用字段:"文件(父母),nextPageToken"的files.list,我会收到460个文件。
所以看起来这取决于你请求的字段数,以及所请求的字段之一是否为parent字段。
答案 1 :(得分:1)
正确答案是您需要监视nextPageToken并继续获取结果,直到nextPageToken未定义/ null
答案 2 :(得分:0)
这是默认的结果数量。您需要提供maxResults
查询参数。
Drive REST API doc - 你甚至看过它吗?
答案 3 :(得分:0)
正如@rorschach所述,您需要使用maxResults
查询参数。
要返回的最大文件数。可接受的值为0到1000,包括0和1000。 (默认值:100)
如此tutorial中所述,您可以通过设置MaxResults
将每页返回的记录数设置为1000。确保您正确配置它。以下是示例代码:
FilesResource.ListRequest request = service.Files.List();
request.MaxResults = 1000;
FileList files = request.Execute();
但如果您的Google云端硬盘上有超过1000个文件和目录,则需要使用Nextpage
。您可以查看上面提供的教程中的示例代码。
编辑:如果使用API v3,则属性为PageSize
,而不是上述教程中引用的MaxResults
。设置页面标记是相同的。
答案 4 :(得分:0)
我的完整示例代码:
// This requires the Drive API To be turned on in the Advanced Google Services
function countFilesInFolder() {
var folderid = DriveApp.getFoldersByName("html").next().getId();
var query = 'trashed = false and "' + folderid + '"' + " in parents and title contains 'json'"// mimeType ="application/json"';
var pageToken = null;
var filesInFolder = Drive.Files.list({
q: query,
maxResults: 1000,
pageSize: 1000,
pageToken: pageToken,
});
pageToken = filesInFolder.nextPageToken;
var cards = filesInFolder.items.length;
while (pageToken != null) {
filesInFolder = Drive.Files.list({
q: query,
maxResults: 1000,
pageSize: 1000,
pageToken: pageToken,
});
cards = cards + filesInFolder.items.length;
pageToken = filesInFolder.nextPageToken;
}
Logger.log("filesInFolder: " + cards);
}