Google Apps ScriptーGoogle Driveでの操作について
Google Apps ScriptでGoogle Driveを操作
Scriptの準備
まず、Scriptの準備をします。新規のスプレッドシートを作成して(タイトルはGAS練習にしました)、メニューバーの「ツール」→「スクリプトエディタ」の順に進みます。
そうすると、スクリプトエディタという画面が開きます。スクリプトファイル名(コード.gs)や関数名(myFunction)を任意の名前にして、これで準備は完了です(タイトルは「GAS練習プロジェクト」にしました)。
Google Driveのフォルダを取得する
●「Google Apps ScriptでGoogle Driveのフォルダを取得」
Google Apps ScriptでGoogle Driveのフォルダを取得する場合は、DriveAppのgetFolderByldメソッドを使用します。
「DriveApp.getFolderByld(フォルダID)」←これでフォルダをオブジェクトとして取得することが出来ます。
IDを知る手段は、Google Driveでフォルダを開いている際に表示されているURLの以下の部分です。
「https.//drive.google.com/drive/folders/{フォルダID}」
●「Google Driveを操作するスクリプトの実行」
例えば、以下のスクリプトを書きます。
1 function myFunction(){
2 const folder = DriveApp.getFolderByld(‘xxxxxxxxxxxx’); //フォルダIDを指定
3 console.log(folder.getName());
4 }
※3の(Folderオブジェクト.getName())ですが、これはフォルダ名を取得するメソッドです。
そして、関数(myFunction)を選択した状態で「実行アイコン」(▶マーク)又は「Ctrl」+「R」で実行します。
●「Google Driveへのリクエストを承認」
初回の実行の場合は、Google Driveへのリクエストの承認を求められます。「Authorization required」というダイアログが表示されますので、「許可を承認」から承認作業を進めて下さい。
以降、いくつかのウィンドウが開かれますが、順次確認をして許可をしていって下さい。この一連作業が終わると、スクリプトからGoogle Driveの操作の許可をしたことになります。
getFileByldメソッドでGoogle Driveのファイルを取得する
Google Driveのファイルを取得する場合は、DriveAppのgetFileByldメソッドを使用します。
「DriveApp.getFileByld(ファイルID)」←これで、IDで指定したファイルをオブジェクトとして取得することが出来ます。
ファイルIDの取得は、Google Driveで対象ファイルを右クリックし、「共有可能なリンクを取得」を選択することで得られます。
→「https.//drive.google.com/open?id={ファイルID}」
又は、Google Driveで対象ファイルのプレビューを開く→右上の「その他の操作」アイコン→「新しいアイコンで開く」でも取得出来ます。以下が、その際のURLです。
「https.//drive.google.com/file/d/{ファイルID}/view」
●「ファイルオブジェクトのファイル名を表示」
ファイルオブジェクトを取得して、そのファイル名をログ出力するスクリプトを紹介します。
1 function myFunction(){
2 const file = DriveApp.getFileByld(‘xxxxxxxxxxxx’); //ファイルIDを指定
3 console.log(file.getName());
4 }
ファイル名の表示もgetNameメソッドで可能です。
createFileメソッドで内容を指定してファイルを作成する
Google Driveの特定のフォルダ内にファイルを作成するには、FolderオブジェクトへのcreateFileメソッドを使用します。
createFileには2種類の使い方がありますので、それぞれ紹介します。
1つ目ーファイル名、内容、MIMEタイプを指定する方法「Folderオブジェクト.createFile(ファイル名、内容、MIMEタイプ)」
※MIMEタイプーWebサーバとWebブラウザの間でやり取りされるデータの中でファイル形式を示す識別子。(例).pdf
●内容を指定してファイルを作成
以下のようなスクリプトで実行します。
1 function createFile(){
2 const Folder = DriveApp.getFolderByld(‘xxxxxxxxxxxx’); //フォルダIDを指定
3 folder.createFile(‘New File’, ‘Hello,world!’ ,MimeType.PDF);
4 }
5
上記のように入力すると、指定したファイルにPDFファイルが生成されます。
2つ目ーBlobオブジェクトを用いる方法「Folderオブジェクト.createFile(Blobオブジェクト)」
※BlobオブジェクトーApps Scriptサービスのデータ交換オブジェクト。ファイルに似た性質をもつ
●Blobオブジェクトを指定してファイルを作成
以下のようなスクリプトで実行します。
1 function createFile(){
2 const Folder = DriveApp.getFolderByld(‘xxxxxxxxxxxx’); //フォルダID
3 const File = DriveApp.getFileByld(‘xxxxxxxxxxxx’); //ファイルID
4 const Blob = file.getBlob();
5 folder.createFile(blob);
6 }
まとめ
Google Apps ScriptでGoogle Driveを操作する方法をいくつか紹介しました。本記事でまだ紹介していない操作は多くありますので、また次回以降に紹介していきます。