Google 사이트가 있는지 확인하는 방법을 아는 사람이 있습니까?Google 사이트가 있는지 어떻게 확인합니까?
var site = SitesApp.createSite(domain, siteName, name, summary);
을 사용하여 새 사이트를 만들려고합니다. 그러나 사이트 (URL 읽기)가 이미 존재하면 오류가 발생합니다.
그런 다음 var test = SitesApp.getSiteByUrl('https://sites.google.com/a/' + domain + '/' + siteName);
을 사용해 사이트가 있는지 확인했지만 존재하지 않으면 오류가 발생합니다. 사이트가 존재하는 경우
- 확인 : 내가하는 것입니다 싶습니다
최종 결과.
- 존재하는 경우 사이트 이름을 수정 (즉, '1'추가) 끝까지 확인한 다음 다시 확인하십시오.
- 나는 두 가지 솔루션이 사이트
만들기,하지만 난 그들 중 하나에 흥분하지 않다. 둘 다 존재하지 않는 URL이 발견 될 때까지 계속 될 while 루프 내에서 실행됩니다.
해결책 1 SitesApp.getSiteByUrl()
을 실행하려면 try/catch를 사용하십시오.
해결책 2 UrlFetchApp.fetch(url).getResponseCode()
과 함께 try/catch를 사용하십시오. '200 OK'가 반환되는지 확인하십시오. 그렇지 않은 경우 getHeaders()
을 사용하여 헤더에서 위치를 가져 와서 'WebspaceNotFound'로 구문 분석하십시오. 불행하게도, 존재하지 않는 사이트와 두 보고서를 '302 Moved Temporarily'로 로그온해야하는 사이트가 있기 때문에 응답 코드에만 의존 할 수는 없습니다.
쉽게 해결할 수 있습니까? 내 솔루션 중 하나가 다른 솔루션보다 좋게 들릴 수 있습니까? 당신이 사이트 정말 많이있는 경우, 여러 getSites 통화를해야 할 수도 있음을
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;
}
참고 : 도메인에있는 모든 사이트의 목록을 얻을 수 있기 때문에
해결 방법 1에 표시되는 문제가 있습니까? 그것은 나에게 가장 좋은 해결책 인 것 같습니다. –
필 (Phil)에 동의하고 try/catch에서'createSite'를 사용하여 실패하지 않으면 사이트가 하나의 단일 단계로 생성됩니다 ;-) –
Phil과 Serge에게 감사드립니다. 나는 try/catch를 사용하는 것이이 경우베이스 - 어쿠스틱으로 친절하지만 그것이 가장 좋은 방법 인 것 같다. –