2016-04-02 9 views
0

私はドライブファイルの名前を、アプリからの検索を容易にするための非常に特殊な規則で指定しています。 v3 Drive API(files.list)の検索機能は、3週間前には最近働いていて、その後動作を停止しています。例えばfiles.listの動作が変更されたようです

は、以下のファイル、

"ABC-123テンプレート"、 "ABC-123ゴーゴー"、 "ABC-123ボーボボ"

を使用して... APIを介して検索するために私を可能にします

name contains 'ABC-123' 

この検索で​​は、3つのファイルがすべて返されます。代わりに結果を返しません。ドライブのウェブインターフェースで同じクエリが成功し、規約は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); 
    } 
    }); 
}; 
+0

GoogleのAPI Explorerを使用すると、このリクエストが機能することがわかりました。コンソール上の私のGoogleプロジェクト設定の設定に問題があるように感じます。 – Greg

+0

^^ *判明していない*が、それは私の下の答えにつながった。 – Greg

+0

あなたの名前にhttps://developers.google.com/drive/v2/reference/files/listのqフィールドに「ABC-123」が含まれていると入力すると、「エラー400、無効なクエリ」が表示されます。 –

答えて

0

根本的な原因は、コーパス値であることが判明しました。ドキュメントから明らかではない理由から、corpus = domainを使用すると、検索が機能しなくなります。

上記のコードサンプルからcorpus: 'domain',を削除することで問題は解決します。

私が探しているファイルは、私のドメイン内にあります。この動作が最近変更されたのか、コード内にこの制約が追加されたのか分かりません。

以降。

関連する問題