Google Apps Script はもともと Google Apps で使われていたのですが、今では Google Docs(Google ドキュメント)でも利用できます。つまり、Google のアカウントがあれば誰でも利用できます。
スクリプト自体は Web ブラウザでも動作する JavaScript と同じなのですが、ローカルのブラウザではなくサーバー上で実行されます。

この間の Google I/O で GUI ビルダーの追加が発表されるなど、開発が容易になってきました。現在は日本語ドキュメントはほとんどありませんが、そのうち出てくるでしょう。


◆ Script でデータを取得し、Web ページとして公開

Google Apps Script は、Google スプレッドシート上か Google サイト上で実行できます。
Google スプレッドシートには、そもそもシートを他人と共有したり、Web ページとして公開したりできる機能があります。そこで試しに、何らかの処理をスプレッドシート上で行い、それを Web ページとして公開してみました。従来であればサーバーを用意し、その上で PHP や Perl などのスクリプトを実行して初めて実現できるようなページです。

今回は、Web API から REST でデータを定期的に取得し、それをスプレッドシート上に追加した上で、シートを一般公開して Web サイトに組み込んでみました。完成したページは私自身のサイトなのですが、こちらです。ATND のイベント情報と東電管内の電力情報を取得して表示しています。

0_webpage



◆ 作成の流れ

本記事は Google Apps Script の解説ではないので、上記のサイトが完成するまでの流れだけをざっと説明します。「ATND」と「電力」がありますが、電力の方を取り上げます。


(1) スクリプトを作成

まず、Google ドキュメントのスプレッドシートを新規作成します。スプレッドシート上で次に「ツール」メニューから「スクリプト エディタ」を選んで起動します。そこに Yahoo の「電力使用状況 API」からデータを XML で取得し、解析するようなスクリプトを作成します。取得したデータは、スプレッドシートの適当なセルに入力します(スクリプトについてはチュートリアルもある)。

1_editor



(2) イベントで定期的に更新

Google Apps Script が便利なのは、トリガーを設定して定期的にイベントを発生させられる点です。例えば、天気データを 1 時間ごとに取得するようなケースです。
トリガーを設定するには、スクリプト エディタの「トリガー」→「Current script's triggers...」を選びます。「現在のスクリプトのトリガー」というダイアログが出てくるので、設定します。

まず「Run」で実行する関数を指定します。次に「Events」です。「Time-driven」はある時間ごとに実行、「From spreadsheet」はスプレッドシートで何らかのイベント(開く、編集するなど)が発生した場合に実行します。定期的に行いたい場合は、前者です。あとは何日おき、何分おき、といった項目を指定します。

2_trigger



(3) Web ページとして公開

電力のデータを定期的に取得し、スプレッドシートを更新できるようになったので、今度はこれを公開します。スプレッドシートの右上にある「共有」から、「ウェブページとして一般公開」を選択します。

3_webpage_menu


通常の「共有」と異なるのは、Web ページは不特定多数向けに公開する点です。「共有」は、知り合いと共同作業する場合などに使います。「ウェブページとして一般公開」の場合、スプレッドシートは HTML テーブルはもちろん、なんと PDF や RSS などに変換されて公開されます。

下のようなダイアログで、公開の設定をします。今回は自分の Web サイトに埋め込みたいので、「ページに埋め込む HTML」を選択しました。ここで「ウェブページ」を選択すると URL をもらえ、単独のページになります。

4_publish



(4) 自分の Web サイトに埋め込む

上の画面で取得した iframe タグを自分の Web サイトに埋め込みました。
完成した様子は、先ほども挙げましたがこちらです。「ATND イベント情報」という項目の下にある「東電管内の電力状況」です。

タブを切り替えるとグラフも表示できます。スプレッドシートのグラフ機能を使っているので、グラフも簡単に実現できます。


◆ まとめ

今回キーになったのは次の方法です。

 ・Google Apps Script を使って Web API 経由でデータ取得
 ・データ取得は定期的なイベントを設定し、自動化
 ・Google スプレッドシートを Web ページとして一般公開
 ・Web ページを自分のサイトに埋め込む

データを定期的に取得して加工し、自サイトで公開するまでが非常に楽です。

以上です。


注:本記事は執筆時点で最新です。時間が経つと内容が古くなるのでご注意ください。