实际上我将google-drive-sdk与我的ios应用程序集成在一起。我可以通过google-drive-sdk for iOS在谷歌驱动器上传指定的文件。此外,我想提供一种功能,用于从用户希望在Google云端硬盘上上传该文件的可用文件夹中选择文件夹。
因此,我找到了如何列出Google云端硬盘的所有文件,但无法找到如何列出Google云端硬盘的所有文件夹。
我还在Google Developer网站上浏览了整个API reference,但没有找到任何解决方案。
我找到了某个地方,使用下面的代码文件夹列表可以完成,所以尝试了但它没有用。
GTLQueryDrive *query = [GTLQueryDrive queryForFilesList];
query.q = @"mimeType='application/vnd.google-apps.folder' and trashed=false";
[self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
GTLDriveFileList *files,
NSError *error) {
if (error == nil) {
NSLog(@"Array of folder: %@", files.items);
} else {
NSLog(@"An error occurred: %@", error);
}
}];
那么有没有使用google-drive-sdk从Google云端硬盘获取文件夹列表的解决方案?
答案 0 :(得分:2)
假设此代码有效,则查询中存在问题。多个查询应由和组合。
query.q = @"mimeType='application/vnd.google-apps.folder' and trashed=false";
有关示例查询的更多示例,请查看官方文档中的Search for Files。
此外,如果此代码不起作用,您希望将Files.list()与上面的查询一起使用。检查链接,您可能想要使用Object-c的示例代码。
答案 1 :(得分:1)
您使用的范围是什么?确保你正在使用
kGTLAuthScopeDrive = @" https://www.googleapis.com/auth/drive";
示例:
NSString *scope = kGTLAuthScopeDrive;
GTMOAuth2ViewControllerTouch *authViewController =
[[GTMOAuth2ViewControllerTouch alloc] initWithScope:scope
clientID:kClientId
clientSecret:kClientSecret
keychainItemName:kKeychainItemName
delegate:self
finishedSelector:finishedSelector];
[self presentViewController:authViewController animated:YES completion:nil];
答案 2 :(得分:0)
使用适当的范围。
有限的drive.file范围,只允许它访问它创建的文件或用户使用它打开的文件。
完整的驱动器范围,允许该应用管理所有用户的云端硬盘文件。
强烈建议尽可能要求范围有限。有关所有可用范围的详细信息,请查看Google Drive SDK文档: