2017-08-08 10 views
1

私はルートに2つのフォルダとGoogleドライブを持っている - ラテン語と非ラテン(キリル文字)の名前を持つ:私は検索するときGoogleドライブAPI V2でSETQ(クエリ)での非ラテン記号

enter image description here

:それは下図のように私にArchiveフォルダのメタデータを提供します

String query = "'root' in parents and title='Archive' and trashed=false"; 
drive.files().list().setQ(query).execute() 

とGoogleドライブのルート私は(キリルフォルダ名で)'root' in parents and title='Архив' and trashed=falseにクエリ文字列を変更した場合

は、しかし、それは私に何も与えていない:私は

enter image description here

使用していますが、次のLIBSによるGoogleドライブAPIのV2

com.google.apis:google-api-services-drive:v2-rev154-1.18.0-rc 
com.google.api-client:google-api-client:1.18.0-rc 
com.google.api-client:google-api-client-android:1.18.0-rc 
com.google.http-client:google-http-client:1.18.0-rc 
com.google.http-client:google-http-client-gson:1.18.0-rc 

これはバグですか、または検索された名前に非ラテン文字のエンコードを使用する必要がありますか?最後にGoogleがどこでドキュメントに言及しているのですか?

更新のためにV3 問題が残っています。以下のLIBSに対するチェック:

com.google.apis:google-api-services-drive:v3-rev80-1.22.0 
com.google.api-client:google-api-client:1.22.0 
com.google.api-client:google-api-client-android:1.22.0 
com.google.http-client:google-http-client:1.22.0 
com.google.http-client:google-http-client-gson:1.22.0 

SECOND UPDATE:API Explorer V2を持ついくつかの研究は、問題はロシアの大文字であることを示しています。フォルダ名に少なくとも1つの大文字がある場合:'root' in parents and title='папкА' and trashed=falseは、このようなフォルダ名を持つクエリは何も与えない:

{ 
"kind": "drive#fileList", 
"etag": "\"iqKjQ5Hr8wRO8SSHNW8KBrJOqxI/skD00QgZZ0FB6U5ufzrrxrFjqyA\"", 
"selfLink": "https://www.googleapis.com/drive/v2/files?q='root'+in+parents+and+title%3D'%D0%BF%D0%B0%D0%BF%D0%BA%D0%90'+and+trashed%3Dfalse", 
"incompleteSearch": false, 
"items": [] 
} 

大文字は、フォルダ名に存在しない場合:'root' in parents and title='папки' and trashed=false問合せは、フォルダのメタデータを正しいJSONを返します。 V3の場合も同様です。 したがって、ドライブサーバーに問題があります。

第3の更新:クエリ'root' in parents and title contains 'папкА' and trashed=falseが正しい回答を返します。

+0

@nooguiフォルダ名に非ラテン文字を使用しないようにすることを意味しますか? – isabsent

+0

'drive.files()。get(folderId).execute()'と尋ねたときにラテン文字以外の項目が表示された場合、 'drive.files()。list() .setQ(クエリ).execute() '?私はGoogleがこの問題を修正するべきだと思う。 – isabsent

+0

私が意味するのは、 'drive.files()。list()。setQ(親で" root "、trashed = false")と言ったときに非ラテン文字の項目が表示された場合です。ほとんど同じ名前の 'drive.files()。list()。setQ(" parent "と" title = "Архив"とtrashed = false ")のexecute()'と同じクエリでそれらを見つける。それは不合理に見えます。Googleがこの問題を修正する必要があると思います。 – isabsent

答えて

0

あなたのケースでは、私はDrive API version 3 Try-itにラテンの記号を試しました。それはうまくいくと思います。

このフォルダは "ɞʚᵷ"という名前のラテン文字があり、クエリを実行しました。

name contains 'ɞʚᵷ' and mimeType = 'application/vnd.google-apps.folder' 

これは機能します。

応答:私はあなたが使用しているものと同様のロシアでの私のフォルダに名前を付ける試みた - 「Архив」、と私は同じ結果、空の結果が得られた:

{ 
"kind": "drive#fileList", 
"incompleteSearch": false, 
"files": [ 
    { 
    "kind": "drive#file", 
    "id": "0Bzgk4zccNwI7TFhPLUpGdmlmVVE", 
    "name": "ɞʚᵷ", 
    "mimeType": "application/vnd.google-apps.folder" 
    } 
] 
} 

更新しました。私はこれがドライブの限界だと思う。英語のアルファベットを使用すると、クエリが常に機能するようになります。

+0

'name = 'ɞʚᵷ'とmimeType = 'application/vnd.google-apps.folder''vainst V3を試すことができますか? – isabsent

+0

はい、うまくいきます! ; ) – noogui

+0

ありがとう!誰もV2の解決策を提案しなければ、私はあなたの答えを受け入れます。 ASでGradleでV3を使用するように設定されたライブラリを表示できますか? – isabsent

関連する問題