フォルダーIDを指定しての実行がなかなか見つからなかったのでメモです。
環境
- Node.js v12.2.0
- Google Drive API v3 (過去の調べるとv2も出てくるので念のため)
基本
公式のNode.jsチュートリアルをやります。
https://developers.google.com/drive/api/v3/quickstart/nodejs
フォルダIDを指定して取得
ブラウザで開いた時のURLのこの部分です。
チュートリアルのfunction listFiles
の箇所を書き換えます。
app.js
async function listFiles(auth) {
const drive = google.drive({version: 'v3', auth});
const FOLDER_ID = `xxxxxxxxxxxxxxxxxxxxxxxxxxxxx`; //ここにフォルダIDを指定
const params = {
q: `'${FOLDER_ID}' in parents and trashed = false`,
}
try {
const res = await drive.files.list(params);
const files = res.data.files;
if (files.length) {
console.log('Files:');
files.map((file) => {
console.log(`${file.name} (${file.id})`);
});
} else {
console.log('No files found.');
}
} catch (err) {
console.log('The API returned an error: ' + err);
}
}
所感
q
に'${FOLDER_ID}' in parents and trashed = false
なんて指定の仕方をするんですね.....
一応中のこの辺をみるとパラメータで何があるか分かりますが、公式のlist.jsってサンプルもparamsの書き方が書いてなくて見つけるのがしんどかった苦笑
driveIdとかteamDriveIdとか色々あるけど別物らしい(調べきれてない)