2012 年 4 月 6 日 金曜日
▼サンプルスクリプト
指定したサイトに含まれるすべてのページを取得し、シートに一覧表示するサンプルスクリプト。
function listAllPages() {
var mySite = SitesApp.getSiteByUrl('https://sites.google.com/xxxxxxxxx');
var pages = mySite.getAllDescendants();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
for(var i=0; i
行2: 今回ページを抽出するサイトオブジェクトを取得している。
行3: {サイトオブジェクト}.getAllDescendants()でサブツリーを含むすべてのページを取得することができる。詳細は後述。
行5-7: 取得したページのタイトルをシートに表示している。
- 関連:シートに値を挿入するには
- 関連:シートの最終行を取得するには
構文
getAllDescendants(optAdvancedArgs)
パラメータ
- optAdvancedArgs
-
- type
- ページの種類で検索対象を絞り込む。PageType参照。
- start
- 検索結果の何件目から結果を取得するか。デフォルトは0。
- end
- 何件取り出すか。デフォルトは200。startを10、endを100とした場合、全検索結果の10件目から110件目までが抽出される。
- includeDrafts
- 下書きを検索対象に含めるかどうか
- includeDeleted
- 削除済みページを検索対象に含めるかどうか
- search
- タイトルか本文が指定した文字列を含むページのみ抽出
戻り値
- Page[]
- 条件にマッチするページとそのサブツリーのページ全て
注意点
パラメータでstart、endを指定して抽出数を調整しても、内部では一旦すべてのページを取得していると思われる。そのため、サイトに含まれるページ数が多くなればなるほど、処理時間は長くなる傾向にある。
この件に関しては以下のスレッドで報告されている。
- Google Sites Services: getAllDescendants takes several secs to return
- fetch url of all pages of a google-site
関連記事
コメントをどうぞ
トラックバック
このエントリーのトラックバックURL:
http://www.bmoo.net/archives/2012/04/313854.html/trackback