1

我正在查询 Google Drive 并传入一个文件夹名称,如果我想列出其中包含的文件夹/文件。我的代码有效,我可以查看某些文件夹的内容,但对于在 Google Drive Web UI 中可见的某些文件夹,我没有收到任何返回的条目,但有内容。

我正在使用 Zend_Gdata_Docs 和 Zend_Gdata_Docs_DocumentListFeed 正在做繁重的工作,但是当它应该包含 Zend_Gdata_Docs_DocumentListEntry 对象的数组时,应该包含文件夹内容的 _entry 数组是空的。

我通过将文件夹名称附加到https://docs.google.com/feeds/documents/private/full/-/some-folder-name来传递文件夹

向我证明这是一个谷歌问题是,如果我重命名导致问题的文件夹并创建一个具有相同名称的新文件夹,我的代码可以工作并且我看到了内容。

在我放弃 Google Drive 并转移到 Dropbox 之前,所有这些都非常奇怪?

4

2 回答 2

0

您需要传递文件夹 id 而不是名称

于 2013-09-04T03:03:54.790 回答
0

看起来问题出在 Google Drive 中文件和文件夹的可见性上。如前所述,代码很好,所有的东西都指向了 Google Drive。

为了使文件和文件夹再次可见,我执行了以下操作;

  1. 从 drive.google.com 中选择有问题的文件/文件夹
  2. 从“更多”按钮中选择“分享”
  3. 更改“谁有权访问”设置,单击“保存”,然后单击“完成”
  4. 如果需要,将“谁有权访问”恢复为以前的设置。

因此,某些文件夹的可见性正在以某种方式丢失或损坏。

更新

我编写了一个 Google Apps 脚本来更新子文件夹的权限并从我的网络应用程序中调用它。该脚本需要创建为 Web App 并部署以供使用。该脚本通过常规脚本 src 调用(因为 Google Apps 脚本不允许使用 XHR)

function doGet(request) {

  var folders = DriveApp.getRootFolder().getFoldersByName(request.parameters.folder);

  while (folders.hasNext()) {
    var folder = folders.next();
    var subFolders = folder.getFolders();

    while (subFolders.hasNext()) {
      var subFolder = subFolders.next();

      subFolder.setSharing(DriveApp.Access.DOMAIN_WITH_LINK, DriveApp.Permission.VIEW );

    }
  }

  var result = '';

  return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JAVASCRIPT);

}

希望这对某人有所帮助。

于 2013-09-05T00:40:35.850 回答