LoginSignup
11

More than 5 years have passed since last update.

Google app script + REST API v2でファイルを完全削除またはゴミ箱を空にする

Last updated at Posted at 2016-12-21

この記事は?

Google Apps Script Advent Calendar 2016の12月21日の記事です。
Google app scriptのDrive API には、ファイルをゴミ箱に移動することはできても、
ファイルを完全に削除することやゴミ箱を空にすることはできません。
リファレンスを見ても探しても見つからないので、出来ないように思えますが、
Google Drive APIs REST v2を使用することで可能です。

スクリーンショット 2016-12-21 20.12.00.png

Google Drive APIs REST v2 とは

Google Drive を外部のアプリケーションから操作するためのAPIです。
公式ページはこちらです。
他のサービスからは認証が大変なのですが、Google App Scriptからは、
とても簡単に操作ができます。
(すでに認証済みの状態でなければGoogle App Scriptを操作できないため)

こちらのemptyTrashリファレンスからその効果を試すことが出来ます。
下記の画像の「EXECUTE」のボタンを押してください。
なんと自分のGoogle Driveのゴミ箱が空になります!(間違って押すと大変)

スクリーンショット 2016-12-21 19.45.51.png

準備

REST API を使用するためには準備が必要です。

準備1:Google App Script側

Google App Scriptのメニューにある「リソース>Googleの拡張サービス…」を選択

スクリーンショット 2016-12-21 19.55.43.png

Drive API (v2)をONにし、OK

スクリーンショット 2016-12-21 19.56.36.png

準備2:Google APIsでの認証

Google App Scriptのメニューにある「リソース>Developers Console プロジェクト…」を選択

スクリーンショット 2016-12-21 20.11.36.png

関係づけられているプロジェクトの部分をクリック(赤く囲んでいるところ)

スクリーンショット 2016-12-21 20.10.57.png

Drive API を有効にする

スクリーンショット 2016-12-21 20.08.10.png
↑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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11