この記事は?
Google Apps Script Advent Calendar 2016の12月21日の記事です。
Google app scriptのDrive API には、ファイルをゴミ箱に移動することはできても、
ファイルを完全に削除することやゴミ箱を空にすることはできません。
リファレンスを見ても探しても見つからないので、出来ないように思えますが、
Google Drive APIs REST v2を使用することで可能です。
Google Drive APIs REST v2 とは
Google Drive を外部のアプリケーションから操作するためのAPIです。
公式ページはこちらです。
他のサービスからは認証が大変なのですが、Google App Scriptからは、
とても簡単に操作ができます。
(すでに認証済みの状態でなければGoogle App Scriptを操作できないため)
こちらのemptyTrashリファレンスからその効果を試すことが出来ます。
下記の画像の「EXECUTE」のボタンを押してください。
なんと自分のGoogle Driveのゴミ箱が空になります!(間違って押すと大変)
準備
REST API を使用するためには準備が必要です。
準備1:Google App Script側
Google App Scriptのメニューにある「リソース>Googleの拡張サービス…」を選択
Drive API (v2)をONにし、OK
準備2:Google APIsでの認証
Google App Scriptのメニューにある「リソース>Developers Console プロジェクト…」を選択
関係づけられているプロジェクトの部分をクリック(赤く囲んでいるところ)
Drive API を有効にする
↑driveを検索するとすぐに見つかります。このあと、有効にすかどうかの確認画面が現れます。
ソースコード
//ゴミ箱を完全に空にする
Drive.Files.emptyTrash();
//特定ファイルを削除する(ゴミ箱に入らず完全削除)
Drive.Files.remove("ID");
(これだけなので、ビックリしました。)
補足
なお、特定ファイル完全削除が、deleteではなくremoveなのは
Google App Scriptの予約語でdeleteがあるための処置だと思われます。
参考記事
[導入ガイド]
https://developers.google.com/drive/v2/web/quickstart/apps-script
[ゴミ箱完全削除のリファレンス]
https://developers.google.com/drive/v2/reference/files/emptyTrash
[特定ファイル削除のリファレンス]
https://developers.google.com/drive/v2/reference/files/delete