5

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

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

我还在 Google Developer 网站上浏览了整个API 参考,但没有找到任何解决方案。

我在某处发现可以使用下面的代码文件夹列表,所以尝试了一下,但没有用。

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 获取文件夹列表的解决方案?

4

3 回答 3

2

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

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

有关示例查询的更多示例,请查看官方文档中的搜索文件。

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

于 2013-06-21T01:42:03.140 回答
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];
于 2014-08-26T03:11:40.013 回答
0

使用适当的范围。

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

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

强烈建议在可能的情况下请求限制范围。有关所有可用范围的更多详细信息,请查看 Google Drive SDK 文档:

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

于 2015-03-27T06:49:35.573 回答