Google Apps ScriptでDrive API v3にてファイル情報を取得する
2023年のGoogle Workspaceのアップデートによって、Google Apps ScriptでもDrive API v3が標準で利用できるようになりました。しかし、毎回忘れてしまうのでここに備忘録として記録しようと思い作成してるのですが、Drive API v2と違って標準でファイルやフォルダの情報が全部でなくなりました。
ということで、Drive API v3でファイルやフォルダの情報を取得する方法を記述しておきます。
リンク
コードと結果
ソースコード
今回は特定の共有ドライブから設定されてる内容などを調べてみようと思います。v2同様に指定するのですが、ここでfieldsというものを指定しないと最低限しか返ってこなくなったのが大きな変更点です。
現在、サービスからDrive APIを追加するとv3がデフォルトになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//ドライブやファイルの情報を取得する function driveman(){ //ドライブIDを指定する let driveid = "ここにドライブのIDやファイルのIDを入れる" //オプション指定を付ける let option = { supportsAllDrive: true, fields:"capabilities" } //情報を取得する let ret = Drive.Files.get(driveid, option); console.log(ret) } |
- 今回は共有ドライブの情報を取得するため、supportsAllDriveのオプションを付けています。
- fieldsに取得したい項目をカンマ区切りで指定します。今回はcapabilitiesのみを指定。指定する項目はこちらから調べることが可能です。
- 尚、fieldsにワイルドカードである「*」を指定した場合は、全情報が返ってきます。
返ってきた結果
今回はcapabilitiesの情報だけを指定したので、その項目だけ返ってきました。
※但し、capabilitiesの項目は出力のみでAPIから変更することは出来ません。この値はpermissionの設定によって変更されます(出力のみというのはそういうこと)。よって、canRenameをdrive.files.updateで変更を掛けても反映されません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
{ capabilities: { canRemoveChildren: false, canAcceptOwnership: false, canRemoveMyDriveParent: true, canAddMyDriveParent: false, canMoveItemIntoTeamDrive: false, canModifyContentRestriction: false, canRemoveContentRestriction: false, canChangeViewersCanCopyContent: false, canMoveChildrenWithinDrive: false, canEdit: false, canChangeSecurityUpdateEnabled: false, canShare: false, canDownload: true, canMoveItemOutOfDrive: false, canChangeCopyRequiresWriterPermission: false, canMoveItemWithinDrive: false, canCopy: true, canComment: false, canModifyEditorContentRestriction: false, canModifyContent: false, canReadRevisions: false, canListChildren: false, canUntrash: false, canRename: false, canReadLabels: false, canModifyOwnerContentRestriction: false, canModifyLabels: false, canTrash: false, canAddChildren: false, canDelete: false } } |