[英]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.