【问题标题】:Search folder inside 'appdata' folder在“appdata”文件夹中搜索文件夹
【发布时间】:2013-07-08 13:29:47
【问题描述】:

在创建之前尝试检查“appdata”文件夹中是否存在文件夹。因此,我确实使用以下代码获取了 file.list:

GTLQueryDrive *folderExistsQuery = [GTLQueryDrive queryForFilesList];
folderExistsQuery.q =  [NSString stringWithFormat:@"mimeType='application/vnd.google-apps.folder' and trashed=false  and 'appdata' in parents and title='%@'",folderName];

结果是一个错误。奇怪的事情当我删除查询中的'appdata' in parentstitle='%@' 选项时,我没有收到任何错误。有人能解释一下这里出了什么问题吗?

也欢迎对解决方案进行任何修改。

编辑
打印错误描述:

Error Domain=com.google.GTLJSONRPCErrorDomain Code=500 "The operation couldn’t be completed. (Internal Error)" UserInfo=0x1030d5c00 {error=Internal Error, NSLocalizedFailureReason=(Internal Error), GTLStructuredError=GTLErrorObject 0x10308d890: {message:"Internal Error" data:[1] code:500}}

【问题讨论】:

  • 你的授权范围是什么?
  • @BurcuDogan 范围是:https://www.googleapis.com/auth/drive.appdata

标签: objective-c google-drive-api


【解决方案1】:

drive.appdatadrive.file 范围内包含标题和父级的查询存在问题。如果我们没有破坏您已安装的应用程序,您可以临时添加drive.readonly.metadata。修复程序已被推迟,但我正在努力确保我们尽快修复它。

另一个类似的问题:Error when listing files with query

【讨论】:

  • 幸运的是我的应用程序还没有推出。希望你们尽快解决。
  • 我在appdata文件更新过程中遇到了类似的错误(不是文件搜索)-*.com/questions/23707388/…您认为这些问题密切相关吗?谢谢。
【解决方案2】:

在当前版本的 API 中使用spaces 属性获取应用程序文件夹中的文件列表:

GTLQueryDrive * query = [GTLQueryDrive queryForFilesList];
query.q = @"mimeType = 'application/vnd.google-apps.folder' and trashed = false";
query.spaces = @"appDataFolder";

【讨论】: