Googleサイトにアクセスする (6/6)
作成:2011-07-25 09:11
更新:2011-11-04 16:54
更新:2011-11-04 16:54
■ページ内の要素を操作する
Googleサイトの各Webページには、それぞれのページの種類ごとに決まった形のデータが保管されます。それらをとり出し編集する機能もGoogle Apps Scriptには用意されています。
まず、各ページ内の要素を取得するメソッドから整理しておきましょう。それぞれ、各データを示すオブジェクトの配列として値が得られます(getHtmlContent以外)。
・リストページ内の列情報を得る
・リストページ内のリストを得る
まず、各ページ内の要素を取得するメソッドから整理しておきましょう。それぞれ、各データを示すオブジェクトの配列として値が得られます(getHtmlContent以外)。
・リストページ内の列情報を得る
変数 =《Page》.getColumns();
・リストページ内のリストを得る
変数 =《Page》.getListItems();
・お知らせページ内のお知らせを得る
変数 =《Page》.getComments( オプション );
・ファイルキャビネットのアタッチメントを得る
変数 =《Page》.getAttachments( オプション );
・ウェブページでHTMLコードを得る
変数 =《Page》.getHtmlContent();
オプションの要素
start――開始位置
max――最大数
search――検索クエリー
ここで、それぞれのデータとして得られるオブジェクトについて整理をしておく必要があるでしょう。各データは、オブジェクトの形で得られますから、それぞれのオブジェクトの働きを理解しておかないと操作できませんから。
Columnオブジェクト
getColumnsで得られる、リストページのリストに用意されている列に関するオブジェクト。
・Columnの主なメソッド
《Column》.deleteColumn();
変数 =《Column》.getName();
《Column》.setName( 名前 );
ListItemオブジェクト
リストページのリストに追加されている各項目に関するオブジェクト。
・ListItemの主なメソッド
《ListItem》.deleteListItem();
変数 =《ListItem》.getValueByIndex( インデックス番号 );
変数 =《ListItem》.getValueByName( 名前 );
《ListItem》.setValueByIndex( インデックス番号, 新しい値 );
《ListItem》.setValueByName( 名前, 新しい値 );
変数 =《ListItem》.getDatePublished();
変数 =《ListItem》.getLastUpdated();
Commentオブジェクト
お知らせページに表示される各お知らせに関するオブジェクト。
・Commentの主なメソッド
《Comment》.deleteComment();
変数 =《Comment》.getContent();
《Comment》.setContent( テキスト );
変数 =《Comment》.getDatePublished();
変数 =《Comment》.getLastUpdated();
変数 =《Comment》.getAuthorName();
変数 =《Comment》.getAuthorEmail();
Attachmentオブジェクト
ファイルキャビネットにアップロードされたファイルに関するオブジェクト。
・Attachmentの主なメソッド
《Attachment》.deleteAttachment();
変数 =《Attachment》.getBlob();
変数 =《Attachment》.getAttachmentType();
変数 =《Attachment》.getContentType();
変数 =《Attachment》.getTitle();
変数 =《Attachment》.getDescription();
変数 =《Attachment》.getUrl();
変数 =《Attachment》.getDatePublished();
変数 =《Attachment》.getLastUpdated();
《Attachment》.setAttachmentType( テキスト );
《Attachment》.setContentType( テキスト );
《Attachment》.setTitle( テキスト );
《Attachment》.setDescription( テキスト );
《Attachment》.setUrl( テキスト );
ざっと主だったところを並べておきました。とりえあず、全要素を取得し、そこから順番に要素のオブジェクトを取り出して必要な情報などを調べる――といった作業ができれば、それだけで基本的な要素の使いはそこそこできそうですね。
例として、先のサンプルで作成したmysamplesiteリストページから、リストの情報を調べてアクティブシートに書き出すサンプルを下にあげておきます。実際にmysamplesiteページにいくつかリスト項目を作成してから実行してみてください。シートの一番上の行に列名が、2行目以降に追加した各項目のテキストが書き出されます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
function getPageItem(){ var sheet = SpreadsheetApp.getActiveSheet(); var site = SitesApp.getSite("example.com","mysamplesite"); // ドメインは修正! var page = site.getChildByName("samplelist"); var cols = page.getColumns(); var items = page.getListItems(); for(var i = 0;i < cols.length;i++){ Logger.log(cols[i].getName()); sheet.getRange(1, i + 1).setValue(cols[i].getName()); for (var j = 0;j < items.length;j++){ Logger.log(items[j].getValueByIndex(i)); sheet.getRange(j + 2, i + 1).setValue(items[j].getValueByIndex(i)); } } }
※関連コンテンツ
「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る