0

Google Apps Script を使用して、Google ドメインの下にあるすべてのサイトを一覧表示する必要があります。小さなスクリプトを作成しましたが、作成したサイトのみが返されます。

function list_sites() {
  var doc = DocumentApp.create('SiteList1');
  var domain = 'test.com';
  var sites = SitesApp.getSites(domain);

  doc.appendParagraph("Top");
  doc.appendParagraph(sites);
  doc.appendParagraph("Bottom");

  doc.saveAndClose(); // Save and close the document
}

すべてのサイトを取得するにはどうすればよいですか?

4

3 に答える 3

2

getAllSitesメソッドを使用できます。

SitesApp.getAllSites(domain, start, max)

なぜそれが文書化されていないように見え、APIドキュメントにないのかわかりませんが、それへの参照を見つけることができ、私はそれを毎日使用する本番スクリプトを持っています。

于 2012-09-13T02:46:31.953 に答える
0

ピーターが言及した例は、私にとってはうまくいきませんでした。次の質問も参照してください:なぜ SitesApp.getSites(myDomain) が機能しないのですか? しかし、私はあなたにも役立つ解決策を見つけました:

function list_sites() {
  var doc = DocumentApp.create('SiteList1');
  var domain = 'example.com';
  var site = SitesApp.getSite(domain);

  doc.appendParagraph("Top");
  var pages = site.getAllDescendants();
  for (i in pages) {
    doc.appendParagraph(pages[i].getTitle());
  }  

  doc.appendParagraph("Bottom");
  doc.saveAndClose(); // Save and close the document  
}
于 2012-09-19T18:00:07.333 に答える
0

https://gist.github.com/eduvik/46bb72f3ffea57402b3f

管理者ユーザーとして実行する必要があります

function listSites() {
  var domain = UserManager.getDomain();
  var PAGE_LENGTH=200;
  sheet = SpreadsheetApp.getActiveSheet();
  var sites = SitesApp.getAllSites(domain,0,PAGE_LENGTH);
  for(var i=0; sites.length != 0; i+=PAGE_LENGTH){
    for (var j=0; j<sites.length; j++) {
      sheet.appendRow([sites[j].getUrl()]);
    }
    sites = SitesApp.getAllSites(domain, i, PAGE_LENGTH);
  }
};
于 2014-05-07T11:51:01.600 に答える