【问题标题】:Listing of all folders of Google Drive through IOS Google Drive SDK通过IOS Google Drive SDK列出Google Drive的所有文件夹
【发布时间】:2017-09-08 18:49:44
【问题描述】:

实际上,我将 google-drive-sdk 与我的 ios 应用程序集成在一起。我可以通过适用于 iOS 的 google-drive-sdk 在 google drive 上上传指定的文件。此外,我想提供一个功能,用于从可用文件夹中选择一个文件夹,用户希望在该文件夹中将该文件上传到 Google Drive。

所以,我找到了如何列出 Google Drive 的所有文件,但找不到如何列出 Google Drive 的所有文件夹。

我还在 Google 开发者网站上浏览了整个 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 Drive 获取文件夹列表的解决方案?

【问题讨论】:

  • 嘿@cultor 你得到这个解决方案了吗?如果你得到请在这里给出答案。我也面临同样的问题。我需要列出文件夹。

标签: ios objective-c google-drive-api google-api-objc-client


【解决方案1】:

假设此代码有效,则查询中存在问题。多个查询应由组合。

query.q = @"mimeType='application/vnd.google-apps.folder' and trashed=false";

有关示例查询的更多示例,请查看官方文档中的Search for Files

此外,如果此代码不起作用,您希望在上面的查询中使用Files.list()。检查链接,您可能想使用 Object-c 的示例代码。

【讨论】:

  • 嗨,感谢您的快速回复。我尝试通过添加“和”(@“mimeType='application/vnd.google-apps.folder' 和垃圾=假”)。但它仍然没有奏效。关于这个链接developers.google.com/drive/v2/reference/files/list我已经浏览过了,但它仅用于列出所有文件而不是文件夹。
【解决方案2】:

您使用的范围是什么?确保您正在使用

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];

【讨论】:

【解决方案3】:

使用适当的范围。

有限的 drive.file 范围,仅允许它访问它创建的文件或用户使用它打开的文件。

允许应用管理所有用户的云端硬盘文件的完整云端硬盘范围。

强烈建议尽可能申请有限范围。有关所有可用范围的更多详细信息,请查看 Google Drive SDK 文档:

https://developers.google.com/drive/scopes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    相关资源
    最近更新 更多