web-dev-qa-db-ja.com

Google Drive APIでフォルダーごとにファイルのリストを取得する方法

ユーザーがGoogleドライブをナビゲートし、後でDBからWebサイトで参照される1つ以上のドキュメントを選択するためのWeb UIを構築しようとしています。現在、.NETを使用してWebインターフェイスを構築しています。私が直面している問題は、フォルダIDごとにファイルのリストを取得する単一の関数が見つからないことです。私は使用してみました:

... www.googleapis.com/drive/v2/files/BB0CHANGEDIDF5waGdzbUQ5aWs/children

…しかし、それはファイル内のファイルの参照ID(子リソース項目と呼ばれる)のみを与えます。つまり、すべてのメタデータを取得するためにそれらのファイルをループし、それぞれの呼び出しを作成する必要があります。 UIが必要です。残念ながら….

... www.googleapis.com/drive/v2/files

..フォルダごとのフィルタリングオプションなしですべてのファイルをリストします。特定のフォルダごとにドライブサーバーへの1回の呼び出しからfolder&ファイルリストを抽出する効率的な方法があるかどうかを知りたいです。

私もこれを試しました( 同様の問題への回答に基づいて ):私はFiddlerを使用してAPIへの直接呼び出しを行っています。これを使用して呼び出しを行うとき `

... www.googleapis.com/drive/v2/files?q='BB0CHANGEDIDF5waGdzbUQ5aWs'

エラーが発生します:

{
 "error": {
  "errors": [
   {wrongID
    "domain": "global",
    "reason": "invalid",
    "message": "Invalid Value",
    "locationType": "parameter",
    "location": "q"
   }
  ],
  "code": 400,
  "message": "Invalid Value"
 }
}

googleのテストページ を使用しても実行されません。 「ファイル」エンドポイントはパラメータを受け入れないようです。

これを達成する方法が必要です!

ご協力ありがとうございました

32
user3199365

親クエリで files/list を簡単に使用できるはずです。

GET https://www.googleapis.com/drive/v2/files?q='BB0CHANGEDIDF5waGdzbUQ5aWs'+in+parents&key={YOUR_API_KEY}
33

V3 APIを使用して、フォルダー内のファイルの特定のフィールドを取得する方法は次のとおりです。

_https://www.googleapis.com/drive/v3/files?q="folderId"+in+parents&fields=files(md5Checksum,+originalFilename)
//
_

「folderId」をフォルダーIDに置き換えます。

&fields=files(*)を使用して、ファイルのすべてのフィールドを取得できます。

8
XP1