ユーザーが自分のGoogleドライブをナビゲートし、後でWebサイトで参照する1つ以上のドキュメントをDBから選択するためのWebUIを構築しようとしています。私は現在、PHPを使用してWebインターフェイスを構築しています。
私が直面している問題は、フォルダIDごとにファイルのリストを取得する単一の関数が見つからないことです。
私は使ってみました:
$service->children->listChildren($rootFolderId)
…しかし、それはフォルダ内のファイルの参照ID(いわゆる子リソースアイテム)のみを提供します。つまり、すべてのメタデータを取得するには、これらのファイルをループして、それぞれの呼び出しを作成する必要があります。 UIが必要です。
残念ながら..
$service->files->list()
..フォルダごとのフィルタリングオプションなしですべてのファイルを一覧表示します。
ドライブサーバーへの1回の呼び出しからフォルダファイルリストを抽出する効率的な方法があるかどうか知りたいのですが。私は実際に、古いGoogle DOC APIに対してこのタスクを実行できたことを覚えています。
ご助力ありがとうございます
NBこの回答はv2APIを使用しています。新しいアプリケーションはv3APIに書き込む必要があります。
now drive.files.listエンドポイントを使用して、特定のフォルダーに属するファイルを一覧表示することができます。
これを行うには、次のように?q=
クエリパラメータを使用できます。
GET https://www.googleapis.com/drive/v2/files?q="'<FOLDER_ID>' in parents"
PHPでは、それは
$service->files->list(array('q' => "'<FOLDER_ID>' in parents"));
クエリパラメータは<FOLDER_ID> in parents
リストファイルおよび/またはフォルダ親にそのような<FOLDER_ID>がありますか?
私の意見では、これは期待される結果です。上記の回答では、次のようになっているため、この質問をします。
...特定のフォルダに属するファイルを一覧表示します。
そして 検索パラメータに関するドキュメント は説明します:
これにより、IDが1234567である親フォルダーのすべての子フォルダーが検索されます。
次のようなものを追加すると、フォルダのみのリストが返される可能性があることを追加しますand mimeType='application/vnd.google-apps.folder'
クエリ文字列に。
検索クエリを使用する必要はありません。 GETを呼び出すだけです https://www.googleapis.com/drive/v2/files/ {folderId}/children
https://developers.google.com/drive/v2/reference/children/list
今では簡単です、心配しないでください。特定のフォルダーからすべてのファイルとフォルダーを取得する場合は、このコードをコピーしてプロジェクトに貼り付けるだけで、特定のフォルダーからすべてのファイルとフォルダーが取得されます。注:独自のフォルダIDが必要です
List<File> result = new ArrayList<File>();
Files.List request = null;
try {
request = mService.files().list();//plz replace your FOLDER ID in below line
FileList files = request.setQ("'"+MyFoler_Id+"' in parents and trashed=false"").execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
}
catch (IOException e)
{
System.out.println("An error occurred: " + e);
request.setPageToken(null);
}
//取得したファイルとフォルダのタイトルを印刷します。
for(File f:result)
{
System.out.println("My recvd data "+f.getTitle());
}