1

ファイルをGoogleドライブに特定のフォルダにアップロードしようとしています。アップロード先(ファイルの親)を設定するためにフォルダのID(名前だけでなく)が必要なので、私は名前で検索し、最初に返されたファイルのIDを以下のクエリから取得しようとします。代わりに、その結​​果、私はエラーを取得する:GoogleドライブAPI v3(C#.NET)タイトルでフォルダやファイルを検索しています。RequestError無効な値[400]

Google.Apis.Requests.RequestError Invalid Value [400] 
Errors [ Message[Invalid Value] Location[q - parameter] Reason[invalid] Domain[global] 
at Google.Apis.Requests.ClientServiceRequest`1.Execute() 
... 

私は、私はどちらか本当に何を検索このエラーまたは空の応答を取得しようとした場合(空のリストを返しますmimeType='application/vnd.google-apps.folder'すべてのディレクトリに対して、すなわちクエリが(スローされません。しかし、エラー))。

私のコードの関連するスニペット:

FilesResource.ListRequest request = service.Files.List(); 
request.Q = "title='test_folder'"; 
string folderId = request.Execute().Files[0].Id; // Error occurs here upon execution 
... 
fileMeta.Parents = new List<string> { folderId }; 

面白いことがあるが、この正確なクエリがAPI V3をAPI v2でGoogleのAPIのテストサイト上で動作しますが、ありません。すべてのフォルダを取得するためのクエリはどちらも(Googleのテストサイトのv2とv3)でも動作しますが、.NETアプリケーション経由で空の応答が得られます。

PS:「マイドライブ」ディレクトリの作品へのファイルのアップロード、私はめちゃくちゃに確認する事項についてのアイデアや提案/にオープンなど

を権限が作業ファイルの設定のようなサービス事業を推進。

答えて

1

問題は、Googleドライブv3 APIのFile.Nameではなく、File.Titleを使用していることです。 v2ではTitleが使用されました。

request.Q = "mimeType = 'application/vnd.google-apps.folder' and name = 'test_folder'"; 

その既知のバグと私はすでに彼らが問題を解決するために一年前、まだ待っているより、その後Googleにドキュメントのバグを報告しています。

+0

これは本当にトリックでした。明らかに、すべての正しいv3クエリーが空のレスポンス(私は空のリストを返す)を返すので、より深刻な問題があります。しかし、答えをありがとう、私はそのようないずれかの方法としてマークしますが、指示に私を指すことができる - 私のクエリが正しく動作することを確認するためにチェックする必要がありますか? –

+1

qを付けずにfile.listを実行し、それが何を返すかを確認します。サービスアカウントを使用している場合は、アップロードするまでファイルを持たないことを覚えておいてください。ここでテストするhttps://developers.google.com/apis-explorer/#p/drive/v3/ – DaImTo

+0

可能なすべてのDriveServiceスコープを指定/許可していますので、アクセスの問題を処理する必要はありません。それは、私がアプリケーションからアップロードしたファイルだけをリストしているようです(過去に使用した資格情報であっても、悲しいことです)。 .Drive、.DriveFile、および.DriveMetadataスコープは現在使用中です。次のステップは何ですか、私はここで何が欠けていますか? –

関連する問題