0

我需要使用 Google Apps 脚本列出 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 回答