今回は、GASによるWebアプリの作成について紹介します。
はじめに
Webアプリについて
GASには、ユーザーがサーバーを用意することなく、手軽にWebアプリを作成できる機能があります。
スプレッドシートやフォームとの連携も可能で、スプレッドシートを簡易的なデータベースに見立てたアプリ等を作成することができます。
Webアプリの作例はネットの情報でたくさん転がっています。勤怠管理システムやオリジナルのBotなどを作っている人が多いようです。
ここでは、Webアプリの紹介例として、簡単な小テストシステムの構築を行っていきます。
プロジェクトの準備
実習用のプロジェクトを作成しましょう。
スプレッドシートのコンテナバインドスクリプトを作成します。
スプレッドシート名、プロジェクト名は任意です。「Webアプリ練習」などでよいでしょう。
index.htmlの作成と公開
公開用のhtmlファイルを作成し、公開します。
index.htmlの作成
プロジェクトを開き、「ファイル」の右の「+ボタン」をクリックします。「HTML」を選択し、ファイル名を「index」とします。
index.htmlに適当な内容を記述します。
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h1>Hello World !</h1>
</body>
</html>
doGet関数の作成
コード.gsに、以下の内容を記述します。
コード.gs
function doGet(e) {
return HtmlService.createTemplateFromFile("index").evaluate();
}
WebアプリのURLにアクセスがあると、doGet
関数がリクエストを受け取り、処理を行います。
そして、HtmlService.createTemplateFromFile("index").evaluate()
でhtmlが生成され、ブラウザで表示されます(詳細は省きます)。
Webアプリの公開
画面右側の「デプロイ」から、「新しいデプロイ」を選択します。
歯車ボタンから、「ウェブアプリ」を選択します。
「ウェブアプリケーションにアクセスしているユーザー」、「兵庫県教育委員会・・・の全員」を選択し、「デプロイ」します。
アプリのURLをコピーしておきます。
コピーしたURLにアクセスすると、Webページが表示されます。
複数ページのアプリケーションを作成する
GASのWebアプリでは、基本的に一つhtmlしか表示できませんが、少し工夫すると複数ページあるように見せかけることができます。
doGet
関数を以下のように修正します。
コード.gs
function doGet(e) {
var page = e.parameter['page'];
// index
if (page == 'index' || page==null) {
var tpl = HtmlService.createTemplateFromFile('index');
return tpl.evaluate();
}
// next page
else if (page.includes('next')) {
var tpl = HtmlService.createTemplateFromFile('next');
return tpl.evaluate();
}
}
次に、2番目のhtmlファイルを作成します。適当にnext.html
としておきます。next.html
へのリンクの部分は、[WebアプリのURL]?page=next
などとします。先ほど作成したhtmlのファイル名がnext.html
なので、揃える形です。
next.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h1>Next Page !</h1>
</body>
</html>
最後に、index.html
を以下のように修正します。
next.html
へのリンクの部分は、[WebアプリのURL]?page=next
などとします。先ほど作成したhtmlのファイル名がnext.html
なので、揃える形です。
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h1>Hello World !</h1>
<a href="https://script.google.com/a/macros/hnd.hyogo-c.ed.jp/s/AKfycbxNrpFRAU7-49fFFpMP4OxfqyGABcVt9XU0XMxuozUmQ3EF4p3fUZE56ZbaVbhD3N97-Q/exec?page=next">Next Pageへ</a>
</body>
</html>
デプロイすると、2番目のページに飛ぶことができます。
おわりに
GASによるWebアプリの作成について紹介しました。
0 件のコメント:
コメントを投稿