我需要使用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
}
如何获取所有网站?
答案 0 :(得分:2)
您可以使用getAllSites方法。
SitesApp.getAllSites(domain, start, max)
我不确定为什么它看起来没有文档,而且不在API文档中,而是you can find references to it我有生产脚本每天都使用它。
答案 1 :(得分:0)
彼得提到的例子,对我不起作用,也看到这个问题:Why does SitesApp.getSites(myDomain) not work? 但我找到了一个可能对你有帮助的解决方案:
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
}
答案 2 :(得分: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);
}
};