我正在尝试获取公共google驱动器文件夹中的文件列表。
我已成功通过身份验证并查看了文件,但生成的子数组包含仅包含字段kind
和id
的子对象。
是否可以从对象中获取title
,selfLink
或childLink
等其他字段?
如果我使用children.list
替换files.list
运行相同的代码,那么我会获得title
字段,但这只是我的google驱动器中的文件,而不是我想要的公用文件夹。我已经浏览了children resource和file resource,但无法确定是否有可能从子数组中获取任何元数据
我正在使用谷歌示例代码,只需最少的更改,
function retrieveAllFilesInFolder(folderId, query, callback) {
var retrievePageOfChildren = function(request, result) {
request.execute(function(resp) {
result = result.concat(resp.items);
var nextPageToken = resp.nextPageToken;
if (nextPageToken) {
request = gapi.client.drive.children.list({
'folderId' : folderId,
'pageToken': nextPageToken
});
retrievePageOfChildren(request, result);
} else {
callback(result);
}
});
}
var initialRequest = gapi.client.drive.children.list({
'folderId' : folderId,
'q' : query
});
retrievePageOfChildren(initialRequest, []);
}
我是javascript和stackoverflow的新手,所以请原谅我错过了什么。 谢谢。 related question
答案 0 :(得分:0)
我想我会自己回答,
我还没有找到直接从title
请求获取selfLink
,childLink
或gapi.client.drive.children.list
的方法。我决定从children.list
获取ID并使用gapi.client.drive.files.get
请求与这些ID获取必要的元数据,如下所示。
function getMetaData(fileId) {
var request = gapi.client.drive.files.get({
'fileId': fileId
});
request.execute(function(resp) {
dataArray.push(resp)
});
}
答案 1 :(得分:0)
如果要从某个文件夹下检索文件(包括所有元信息),您仍然可以使用drive.files.list(),从而将文件夹ID作为查询参数传递。这是一个例子:
function retrieveAllFiles(callback) {
var retrievePageOfFiles = function (request, result) {
request.execute(function (resp) {
result = result.concat(resp.items);
var nextPageToken = resp.nextPageToken;
if (nextPageToken) {
request = gapi.client.drive.files.list({
'pageToken': nextPageToken
});
retrievePageOfFiles(request, result);
} else {
callback(result);
}
});
};
var initialRequest = gapi.client.drive.files.list({
q : "'<FOLDER_ID_HERE>' in parents"
});
retrievePageOfFiles(initialRequest, []);
}
有关搜索参数的更多信息:https://developers.google.com/drive/web/search-parameters