libro
www.tuyano.com
初心者のためのGoogle Apps Scriptプログラミング入門

Googleサイトにアクセスする (5/6)

作成:2011-07-25 09:07
更新:2011-11-04 16:53

■Pageに追加できる要素とは?

次は、作成されたページを構成する要素について考えてみましょう。Googleサイトでは、Webページにはいくつかの種類があり、それによってページに置くことのできる要素が変わってきます。ページの種類は、以下のようになっています。

ウェブページ――通常のWebページ。各種のウィジェット類を追加したり、テキストを記述したりイメージを貼り付けたり、自由に作れるページ。
お知らせ――情報ページを追加し、並べて表示するもの。
ファイルキャビネット――アップロードしたファイルを整理しダウンロード出来るようにしたもの。
リスト――一覧リストのページ。

これらのうち、「ウェブページ」は、あまりに自由度が高すぎるためか、ページ内の要素を操作するための専用メソッドなどは用意されていません。それ以外のものは、基本的に「用意された部品を順に並べて表示する」というものですので、スクリプトで部品を作り追加することができるようになっています。

コメントを追加する
変数 =《Page》.addComment( コメント文 );

リストページでリストに項目を追加する
変数 =《Page》.addListItem( テキスト配列 );

お知らせページでアナウンスを作成する
変数 =《Page》.createAnnouncement( タイトル, HTMLコード );

ファイルキャビネットでファイルを追加する
変数 =《Page》.addWebAttachment( タイトル, 説明文, アドレス );
変数 =《Page》.addHostedAttachment( Blobデータ );
変数 =《Page》.addHostedAttachment( Blobデータ, 説明文 );

ウェブページのHTMLコードを設定する
変数 =《Page》.setHtmlContent( HTMLコード );

ファイルキャビネットへのファイルの追加で「Blobデータ」という見たことのないものが出ていますが、これはバイナリデータのオブジェクトです。こんな具合に作成することができます。

・Blobオブジェクトの生成
変数 = Utilities.newBlob( テキストやbyte配列 );

元データとなるものをテキストやbyte配列として用意し、こんな具合にBlobを作ってファイルキャビネットに追加します。他にもBlobを生成するメソッドはありますが、まぁここではもっともシンプルな上のメソッドだけ紹介しておくに留めておきましょう。

では、実際の利用例を以下にあげておきます。これは、リストタイプのページを用意し、ここにリストをどんどん追加していくサンプルです。実行すると、アクティブシートにテキスト入力のダイアログが現れるので、適当に文字を書くと、mysamplesiteサイトのsamplelistページのリストにデータが追加されます。ページがない場合は自動的に作成されます。

Googleサイトは、自由にページが作れるのはウェブページのタイプだけで、後はあらかじめページに追加できるものが決まっており、非常に制約された形になっています。が、これも「スクリプトから操作する」という目で見ると、非常にわかりやすく扱いやすい仕組みになっていることがわかるでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function addToPage(){
	var str = Browser.inputBox("テキストを入力:");
	var site = SitesApp.getSite("example.com","mysamplesite"); // ドメインは修正!
	var page = site.getChildByName("samplelist");
	if (page == undefined){
		page = site.createListPage("samplelist","samplelist",
				"<h3>this is sample list page.</h3>",["title","content"]);
	}
	page.addListItem([str,str + "のコンテンツ。"]);
}

※関連コンテンツ

「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る