Google 서비스 승인

Google Apps Script는 비공개 데이터에 액세스하기 위해 사용자 승인이 필요합니다. 기본 제공 Google 서비스 또는 고급 Google 서비스.

Google 서비스 승인 작동 방식

스크립트에서 Google 서비스에 대한 액세스가 필요한 경우 다음 일반적인 프로세스를 따릅니다.

  1. 감지: Apps Script는 스크립트를 검사하여 사용하는 서비스 (예: SpreadsheetApp 또는 GmailApp)를 식별합니다.
  2. 범위 결정: 검사를 기반으로 Apps Script 는 스크립트를 실행하는 데 필요한 OAuth 범위 집합을 식별합니다.
  3. 승인 확인: 스크립트가 실행되면 사용자가 이미 이러한 범위를 승인했는지 확인합니다.
  4. 사용자 프롬프트: 승인이 누락된 경우 사용자에게 권한을 부여하라는 대화상자가 표시됩니다.
  5. 실행: 스크립트가 승인되면 해당 사용자의 요청된 데이터에 액세스할 수 있습니다.

권한 및 스크립트 유형

스크립트가 실행되는 사용자 ID(따라서 액세스할 수 있는 데이터)는 스크립트가 실행되는 시나리오에 따라 다음 표와 같이 다릅니다.

스크립트 유형 스크립트가 실행되는 사용자
독립형, Google Workspace 부가기능 또는 Google Docs, Google Sheets, Google Slides, Google Forms에 연결됨 키보드를 사용하는 사용자
스프레드시트의 맞춤 함수 익명 사용자; 할당량 한도는 키보드를 사용하는 사용자에게 적용됨
웹 앱 또는 Google Sites 가젯 앱을 배포할 때 선택한 옵션에 따라 키보드를 사용하는 사용자 또는 스크립트 소유자
설치 가능한 트리거 트리거를 만든 사용자

액세스 권한 부여

Apps Script는 코드 검사를 기반으로 승인 범위 (예: Sheets 파일 또는 Gmail에 대한 액세스)를 자동으로 결정합니다. 주석 처리된 코드도 승인 요청을 생성할 수 있습니다. 스크립트에 승인이 필요한 경우 실행될 때 승인 대화상자가 표시됩니다.

이전에 승인한 스크립트도 코드 변경으로 새 서비스가 추가되면 추가 승인을 요청합니다. 스크립트 소유자의 사용자 ID로 실행되는 웹 앱으로 스크립트에 액세스하는 경우 스크립트에서 승인을 요청하지 않을 수 있습니다.

액세스 권한 취소

스크립트의 데이터 액세스 권한을 취소하려면 다음 단계를 따르세요.

  1. Google 계정의 보안 섹션으로 이동합니다.
  2. 서드 파티 앱 및 서비스 연결 에서 모든 연결 보기 를 클릭합니다.
  3. 액세스 권한을 취소하려는 스크립트 또는 앱을 선택합니다.
  4. APP_NAME과 연결된 모든 연결 삭제를 클릭한 후 확인을 클릭합니다.

범위를 현재 문서로 제한

스프레드시트 서비스, 문서 서비스, 프레젠테이션 서비스 또는 설문지 서비스를 사용하는 부가기능 또는 기타 스크립트를 빌드하는 경우 승인 대화상자에서 사용자의 모든 스프레드시트, 문서 또는 설문지가 아닌 부가기능 또는 스크립트가 사용되는 파일에 대한 액세스만 요청하도록 할 수 있습니다. 이렇게 하려면 파일 수준 주석에 다음 JSDoc 주석 을 포함합니다.

/**
 * @OnlyCurrentDoc
 */

스크립트에 라이브러리가 포함되어 있지만 기본 스크립트에서 실제로 현재 파일보다 더 많은 파일에 액세스해야 하는 경우 반대 주석인 @NotOnlyCurrentDoc을 사용할 수 있습니다.@OnlyCurrentDoc

부가기능의 승인 수명 주기

Sheets, Docs, Slides, Forms 용부가기능은 일반적으로 문서에 연결된 스크립트와 동일한 승인 모델을 따릅니다. 그러나 특정 상황에서는 onOpen(e)onEdit(e) 함수가 추가적인 복잡성을 야기하는 승인 없음 모드에서 실행됩니다. 자세한 내용은 부가기능 승인 수명 주기 가이드를 참고하세요.

OAuth 애플리케이션 사용자 한도

Apps Script 프로젝트를 비롯하여 OAuth를 사용하여 Google 사용자 데이터에 액세스하는 애플리케이션에는 승인 한도가 적용됩니다. 자세한 내용은 OAuth 애플리케이션 사용자 한도 를 참고하세요.

Apps Script의 재인증 동작

Apps Script는 Google Cloud 서비스 설정에서 구성된 재인증 빈도를 적용하지 않습니다. Apps Script는 직접적인 사용자 상호작용 없이 작동하는 트리거를 사용하여 자동으로 실행될 수 있기 때문입니다. 이러한 자동 실행은 재인증 프롬프트를 트리거하지 않습니다. Apps Script 애플리케이션은 지정된 기간(예: 12시간)이 지난 후 자동으로 재인증을 요청하지 않습니다.

매니페스트에서 명시적 범위 설정

Apps Script는 함수 호출을 위해 코드를 검사하여 필요한 범위를 자동으로 결정합니다. 더 많은 제어가 필요한 경우 프로젝트 매니페스트 (appsscript.json)에서 범위를 명시적으로 설정할 수 있습니다. 게시된 스크립트의 경우 최소한의 필수 권한을 사용하도록 하는 것이 좋습니다.

자세한 내용은 명시적 범위 설정을 참고하세요.

문제 해결

  • "트리거를 실행할 때 '승인이 필요합니다' 오류: 트리거는 트리거를 만든 사용자가 승인해야 합니다. 새 권한이 필요한 코드를 추가하는 경우 스크립트 편집기에서 함수를 한 번 수동으로 실행하여 승인 대화상자를 트리거해야 합니다.
  • 범위가 업데이트되지 않음: 코드를 업데이트했지만 승인 대화상자에 변경사항이 반영되지 않는 경우 프로젝트를 저장하고 편집기를 새로고침 해 보세요. 매니페스트에서 명시적 범위를 사용하는 경우 새 범위를 oauthScopes 배열에 추가했는지 확인합니다.
  • "이 앱이 차단됨" 또는 인증되지 않은 앱 경고: 스크립트에서 민감하거나 제한된 범위를 사용하고 Google에서 인증하지 않은 경우 발생합니다. OAuth 클라이언트 인증을 참고하세요.