files.list行为似乎已经改变

时间:2016-04-02 02:48:03

标签: google-drive-api

我一直在使用非常具体的约定来命名Drive文件,以便于从应用程序中搜索它们。 v3 Drive API(files.list)中的搜索功能最近已在三周前开始工作,并且此后一直停止工作。

例如,使用以下文件

“ABC-123模板”,“ABC-123 gogo”,“ABC-123 bobo”

...让我可以通过API搜索

name contains 'ABC-123'

此搜索应返回所有三个文件。相反,它不返回任何结果。请注意,Drive Web界面中的相同查询是成功的,并且约定遵循documentation中规定的规则。

这很有效,现在已经停止了。搜索API有变化吗?!我可以在实现中找到其他文件,而不是那些使用命名约定的文件。

以下是NodeJS中请求的完整代码段。

Google.prototype.findFiles = function(file_prefix, callback) {
  var service = google.drive('v3');
  service.files.list({
    q: "name contains '" + file_prefix + "'",
    fields: 'nextPageToken, files(id, name)',
    spaces: 'drive',
    corpus: 'domain',
    auth: this.auth
  }, function(err, response) {
    if(err) {
      console.log('Error : findFiles failed. ' + err);
      callback(err);
    } else {
      callback(null,response.files);
    }
  });
};

1 个答案:

答案 0 :(得分:0)

根本原因证明是语料库价值。由于文档中不清楚的原因,使用corpus = domain会阻止搜索工作。

从上面的代码示例中删除corpus: 'domain',可以解决问题。

我正在搜索的文件非常属于我的域名。我不确定最近这种行为是否发生了变化,或者是否在代码中添加了这种约束,并且根本不记得这样做。

冠。