我刚开始使用Google Drive API。我走过了整个安装和设置指南,现在我可以在我的iOS应用程序上使用这个漂亮的服务。
我的目标是:加载指定目录的所有文件。
我找到了如何为根目录获取负载的示例,它工作正常,我真的很喜欢这段代码:
- (void)loadDriveFiles
{
GTLQueryDrive *query = [GTLQueryDrive queryForFilesList];
query.q = [NSString stringWithFormat:@"'%@' IN parents ", @"root"];
[self.driveService executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
GTLDriveFileList *files,
NSError *error)
{
if (error == nil)
{
_driveFiles = [[NSMutableArray alloc] init];
[_driveFiles addObjectsFromArray:files.items];
for (GTLDriveFile *file in _driveFiles)
{
NSLog(@"title: %@", file.title);
NSLog(@"mimeType: %@", file.mimeType);
}
}
else
{
NSLog(@"An error occurred: %@", error);
}
}];
}
为了加载所有文件,我使用GTMOAuth2ViewControllerTouch
而不是kGTLAuthScopeDrive
初始化kGTLAuthScopeDriveFile
,因为它们用于快速启动tutorial。
所以上面的代码就像我说的那样完美,但我的问题是如何替换" root"与文件夹ID。我想GTLDriveFile
对象有这个信息,但我还是没找到它。我想出了mimeType,所以我可以使用这个键/值检查GTLDriveFile
是否是一个文件夹:
mimeType:"application/vnd.google-apps.folder"
但我在哪里可以找到文件夹ID?所以我只是玩硬编码文件夹id从浏览器复制它,它也适用于我,但我想用包含文件夹ID信息的单元格创建表格,按下这个单元格我将根据文件夹ID打开文件夹所属。为此我需要知道如何找到文件夹ID,我想。我认为android组的用户也可以提出建议。