HTMLServiceでアプリケーションを作る時に
function doGet(){
return HtmlService.createHtmlOutputFromFile("index");
}
みたいなコードを書いたり
.htmlファイルを新規作成するのは毎回やることなので
ワンクリックで基本的なコードが書かれたファイルを作成したくなった
実現するための手順
- テンプレート用のスクリプトファイルをGoogleドライブ内に用意する
- そのファイルをコピーするスクリプトファイルを用意してWebアプリにする
- そのアプリを開いたらマイドライブにテンプレートファイルのコピーが作成される
1. テンプレートファイルを用意する
コード1.gsfunction doGet() {
return HtmlService.createHtmlOutputFromFile("index");
}
| 意訳この機能がやること 指定したHTMLファイルを表示する |
ここでは.htmlファイルはデフォルトのままにしておきます
index.html<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
</body>
</html>
|
2. 1のファイルをコピーするスクリプトファイルを用意する
コード2.gsvar FILE_ID = "ファイルID";
function doGet() {
var copy_file_url = copy_file_to_mydrive();
var open = '<script>window.open("' + copy_file_url + '","_top")</script>';
var html = HtmlService.createHtmlOutput(open);
return html;
}
function copy_file_to_mydrive() {
var file = DriveApp.getFileById(FILE_ID);
var name = "Copy of " + file.getName();
var copy_file = file.makeCopy(name);
return copy_file.getUrl();
}
| 意訳ファイルIDを指定する この機能がやること ファイルをコピーしてそのURLを取得して そのファイルを開くスクリプトを書いて そのスクリプトを含むHTMLを作成して 返す この機能がやること 対象のファイルを取得して 名前を決めて コピーを作成して 作成したファイルのURLを返す |
これをWebアプリケーションとして導入します
やり方はこちらに↓
HTMLでページを作る
3.2で作ったWebアプリケーションを開く
うまくいくとテンプレートファイルがマイドライブにコピーされます
リンクとして使う場合はこのWebアプリケーションのURLを aタグ の href に指定します
(自分以外に共有する場合は共有設定の変更が必要です)