有谁知道如何检查Google网站是否存在?
我正在尝试使用var site = SitesApp.createSite(domain, siteName, name, summary);
来创建新网站。但是,如果站点(读取URL)已存在,则会引发错误。
然后我尝试使用var test = SitesApp.getSiteByUrl('https://sites.google.com/a/' + domain + '/' + siteName);
来检查网站是否存在,但如果它不存在则会抛出错误。
我希望的最终结果是:
我有两种可能的解决方案,但我对其中任何一种都不感兴趣。它们都将在while循环中运行,该循环将一直持续到找不到不存在的url。
解决方案1
使用try / catch运行SitesApp.getSiteByUrl()
。
解决方案2
将try / catch与UrlFetchApp.fetch(url).getResponseCode()
一起使用。检查它是否返回'200 OK'。如果没有,请尝试使用getHeaders()
从标题中获取位置,然后将其解析为“WebspaceNotFound”。不幸的是,我不能单独依赖响应代码,因为不存在的站点和要求您登录的站点都报告为'302 Moved Temporarily'。
有一个简单的解决方法吗?我的任何一种解决方案听起来都比另一种好吗?
答案 0 :(得分:0)
因为您可以获取域中所有网站的列表,所以您可以执行以下操作:
function siteExists(domain, siteName) {
var sites = SitesApp.getSites(domain);
sites.forEach(function(n, i, a){a[i] = n.getName()});
if(~sites.indexOf(siteName)) return true;
else return false;
}
请注意,如果您拥有大量网站,则可能需要进行多次getSites调用。此外,由于我从管理员帐户进行测试,因此当您无法访问所有网站时,我不知道这将如何工作。希望它会指出你的方向。