Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプト


みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Google Apps Scriptで操作するサービスとして、スプレッドシート、Gmail、カレンダー、ドキュメント…と来ましたが、そろそろGoogleドライブも操作できるようになっておきましょう。

どんなツールを作るかと言いますと、メールの添付ファイルをGoogleドライブ内の指定のフォルダに自動保存するというツールです。

  • 特定の取引先やシステムから送られてくる定期レポート
  • eFAXなどで転送されてきたPDF

など、用途はけっこうあるかなと思います。

今回は第1回目。Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプトとしてGoogleドライブのフォルダとファイルを取得する方法についてお伝えします。

では、行ってみましょう!

スポンサーリンク

スクリプトエディタを起動する

はい、ではまずスクリプトの準備をしていきましょう。

本ツールでは、ゆくゆくはGoogleドライブへの保存履歴をスプレッドシートに記録していきたいと考えているので、スプレッドシートからスクリプトエディタを開いていきたいと思います。

新規のスプレッドシートを作成して、メニューから「ツール」→「スクリプトエディタ」ですね。

スプレッドシートからスクリプトエディタを開く

スクリプトエディタが開きますので、プロジェクト名を「ドライブにファイル保存」、スクリプトファイル名を「test.gs」、関数名を「testDrive」に変更をしました。

スクリプトエディタ

これで準備はOKです。

Googleドライブのフォルダを取得する

今回は、はじめてのGoogleドライブの操作ということで、Googleドライブ内の以下「Googleドライブ操作」という名称のフォルダを操作してみたいと思います。

操作をするGoogleドライブのフォルダ

フォルダの中には、「高橋宣成の著書紹介」というpdfファイルがあります。

まず、このフォルダをGoogle Apps Scriptで取得してみましょう。

getFolderByIdメソッドでGoogleドライブのフォルダを取得

Google Apps ScriptでGoogleドライブのフォルダを取得する場合は、DriveAppのgetFolderByIdメソッドを使います。

DriveApp.getFolderById(フォルダID)

これでフォルダをオブジェクトとして取得することができます。

IDをどのように知るかと言いますと、フォルダであればGoogleドライブでそのフォルダを開いている際のURLの以下の部分です。

https://drive.google.com/drive/folders/{フォルダID}

GoogleドライブのURLからフォルダIDを知る

Googldeドライブを操作するスクリプトの実行

例えば、以下のようなスクリプトを書いてみましょう。

function testDrive() {
  const folder = DriveApp.getFolderById('XXXXXXXXXXXX'); //フォルダIDを指定
  console.log(folder.getName());
}

そして、関数を選択した状態で「実行」アイコン、または Ctrl + R で実行です。

スクリプトを実行する

Googleドライブへのリクエストを承認

初回の実行であればGoogleドライブへのリクエストの承認を求められます。

「Authorization required」というダイアログが表示されますので、「許可を確認」から承認作業を進めてください。

Googleドライブの承認が必要です

以降、いくつかのウィンドウが開きますので、順次確認して許可をしていってください。

詳しくは以下の記事をどうぞ!

【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために
超初心者向けGoogle Apps Scriptを学ぶシリーズ、Botの作成を目指しております。実行時に「承認してください」とスクリプトからのアクセス許可が求められる件について、詳しく解説していきます。

この作業が終えると、スクリプトからGoogleドライブの操作の許可をしたということになります。

フォルダオブジェクトのフォルダ名を表示

実行しても何も起きないように思えるかも知れませんが、console.logですからログに何かが表示されているはずです。

スクリプトエディタのメニューの「表示」→「ログ」または Ctrl + Enter でログを確認することができます。

GASでフォルダ名をログ出力

フォルダ名が「Googleドライブ操作」と出力されていますね。

スクリプトで使用されているgetNameメソッドフォルダ名を取得するメソッドです。

Folderオブジェクト.getName()

getFileByIdメソッドでGoogleドライブのファイルを取得する

では、もう一つスクリプトを作ってみましょう。

今度は、フォルダ内に保存されていたファイル「高橋宣成の著書紹介.pdf」を取得してみましょう。

Googleドライブのファイルを取得する場合は、DriveAppのgetFileByIdメソッドを使います。

DriveApp.getFileById(ファイルID)

これで、IDで指定したファイルをオブジェクトとしてつかむことができます。

ファイルのIDは、Googleドライブで対象ファイルを右クリック→「共有可能なリンクを取得」にて得られる

https://drive.google.com/open?id={ファイルID}

または、Googleドライブで対象ファイルのプレビューを開く→右上の「その他の操作」アイコン→「新しいウィンドウで開く」をした際のURL

https://drive.google.com/file/d/{ファイルID}/view

で得ることができます。

Googleドライブのプレビュー画面で得られるIDはフォルダIDなので気をつけて下さいね。

ファイルオブジェクトのファイル名を表示

それではファイルオブジェクトを取得して、そのファイル名をログ出力するスクリプトを実行してみましょう。

function testDrive() {
  const file = DriveApp.getFileById('XXXXXXXXXXXX'); //ファイルIDを指定
  console.log(file.getName());
}

ファイル名の表示もgetNameメソッドで可能です。

Fileオブジェクト.getName()

ログ出力の結果を見ると、以下のようにファイル名が表示されていることを確認できました。

GASでGoogleドライブのファイル名をログ出力

まとめ

以上、Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプトとして

  • GoogleドライブのフォルダをIDで取得してそのフォルダ名を表示する
  • GoogleドライブのファイルをIDで取得してそのファイル名を表示する

という二つのスクリプトを紹介しました。

Googleドライブ上のフォルダやファイルは何でもIDで取得することができますので、覚えておいてくださいね。

次回はGoogleドライブのフォルダ内にファイルを生成する方法についてお伝えしますね。

Google Apps ScriptでGoogleドライブのフォルダ内にファイルを作成する方法
Google Apps ScriptでGoogleドライブの特定フォルダにファイルを作成する方法についてお伝えします。内容やMIMEタイプを指定する方法、Blobオブジェクトを指定する方法の二つあります。

どうぞお楽しみに!

連載目次:GASでGoogleドライブを操作してメール添付を自動保存

メールの添付ファイルをGoogleドライブに自動保存するツールを題材として、Google Apps ScriptでGoogleドライブを操作する方法についてお伝えするシリーズです。
  1. Google Apps ScriptでGoogleドライブを操作する最も簡単なスクリプト
  2. Google Apps ScriptでGoolgeドライブのフォルダ内にファイルを作成する方法
  3. Google Apps ScriptでGmailの添付ファイルをGoogleドライブに保存する

タイトルとURLをコピーしました