まずは Google Apps Script でアプリケーションを作成する第一歩として、
ブラウザにWeb画面を表示してみましょう。
Google Apps Script には2種類のスクリプトがあります。
それぞれのスクリプトの違いについて確認していきましょう。
Google スプレッドシートやドキュメントなどの各アプリケーションのメニューから作成することができるスクリプトです。
<スクリプトを作成する手順>
<メリット>
この方法で作成されたスクリプトと同アプリケーションはバインド(結びつく)しているため、
スプレッドシートの場合は下記のメソッドによりブラウザで開いている同スプレッドシートを操作することができます。
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getActiveSheet();
const range = sheet.getActiveRange();
また、onOpen関数を利用してアプリケーションにメニューを追加し、
そのメニューからスクリプトエディタでコーディングした関数を実行することができます。
他にも、図形にコーディングした関数を埋め込み、図形をクリック時に埋め込めんだ関数を実行することもできます。
要約しますと、この方法で作成したスクリプトはExcelでいうVBAに近い感覚で利用することができます。
Container Bound Script とは対照的に、どのアプリケーションにもバインド(結びつく)していないスクリプトです。
作成されたスクリプトは Googleドライブ に表示されます。
<スクリプトを作成する手順>
<メリット>
一見、Container Bound Script でスクリプトを作成した方が始めやすく、
バインドしたファイルを簡単に参照できるメソッドも利用できるため扱いやすいです。
しかし、作成したスクリプトを他者と共有して利用したい場合は、
利用者もスクリプトエディタを編集することができてしまいます。
つまり、いつの間にか利用者によってスクリプトの内容が書き換えられてしまうことが起こる可能性があります。
一方で、Standalone Script はスクリプトファイルを共有したアカウントのみ編集することができ、ユーザーによって編集されるリスクがありません。
また、作成したスクリプトは Google ドライブに保存されているため管理がしやすいのも特徴です。
(Container Bound Script の場合は対象のファイルを開かなければスクリプトエディタを開くことができません。また、Google ドライブにスクリプトが表示されません。)
補足
Google ドライブでは Container Bound Script を管理できないとお伝えしましたが、
作成したスクリプトは下記リンク先のダッシュボードから簡単にアクセスすることができます。
https://script.google.com/home
今回のWebアプリ編のハンズオンでは Standalone Script で進めていきます。
Container Bound Script でも問題なく行うことができますが、
後々の管理のことを考えて Standalone Script で進めていきましょう。
Webアプリを作るには画面を作る必要がありますが、画面はHTMLファイルで作ることができます。
HTMLファイルは下記の手順で作成することができます。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
</body>
</html>
ユーザーが公開したWebアプリにアクセスした場合にdoGet関数は実行されます。(別のプログラムからWebアプリにHTTPのGETリクエストが送信される場合も同じく実行されます。)
Web画面を表示するにはdoGet関数の戻り値として HtmlServiceオブジェクト を指定する必要があります。
下記のようにコーディングをしますと、index.html
を表示する画面として指定することができます。
function doGet() {
return HtmlService.createTemplateFromFile('index').evaluate();
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Hello World!
</body>
</html>
作成したWeb画面はデプロイ(公開)をすることでURLが発行されて確認することができます。
作成したWebアプリは次の手順でデプロイ(公開)することができます。
無償版の Google アカウントで作成したWebアプリを公開すると以下の画像のように画面上部にメッセージが表示されてしまいます。
このメッセージは取り除いたり隠したりすることができないため注意が必要です。
公開したWebアプリはその後更新することもできます。
まずはindex.html
を以下のようにHello World!
をこんにちは!
に変更してみましょう。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
こんにちは!
</body>
</html>
変更できましたら、以下の手順に沿ってWebアプリを更新してみましょう。
Web画面を更新できることを確認することができたと思いますが、
実際の開発ではコードの修正⇨Web画面の確認の流れが頻繁に発生するため、その都度更新の手順を踏むのは非常に手間に感じられます。
そこで、デプロイ(公開)はしないで最新のWeb画面を確認する方法をご紹介します。
まずはindex.html
を以下のようにこんにちは!
をWeb画面を変更しました!
に変更してみましょう。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
Web画面を変更しました!
</body>
</html>
変更できましたら、以下の手順に沿って最新のWebアプリの画面を確認してみましょう。
注目して欲しいのはWebアプリのURLです。「デプロイをテスト」からアクセスしたURLの末尾は /dev になっているのに対し、
公開しているURLの末尾は /exec になっています。
この2つのURLを使い分けて開発を進めていきましょう。
/dev のURLはWebアプリを公開することで発行されます。発行されたURLは変わらないため、以降はプログラムを改修後は /dev のURLを表示した画面を更新(リロード)するだけで最新のWeb画面が確認できるようになります。