[英]How do I check if a Google Site exists?
有谁知道如何检查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临时移动”的身份登录两个站点的站点。
为此有一个简单的解决方法吗? 我的两个解决方案听起来都比另一个更好吗?
因为您可以获取域中所有站点的列表,所以可以执行以下操作:
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。 另外,由于我是通过管理员帐户进行测试的,因此,当您无法访问所有站点时,我也不知道如何使用。 希望它将为您指明方向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.