Class ScriptApp

스크립트 앱

스크립트 게시 및 트리거에 액세스하고 이를 조작합니다. 이 클래스를 통해 사용자는 스크립트 트리거를 만들고 스크립트를 서비스로 게시하는 것을 제어할 수 있습니다.

속성

속성유형설명
AuthModeAuthModeApps Script가 트리거 함수를 통해 실행할 수 있는 승인된 서비스 카테고리를 식별하는 열거형입니다.
AuthorizationStatusAuthorizationStatus스크립트의 승인 상태를 나타내는 열거형입니다.
EventTypeEventType트리거된 이벤트 유형을 나타내는 열거형입니다.
InstallationSourceInstallationSource스크립트가 부가기능으로 사용자에게 설치된 방식을 보여주는 열거형입니다.
TriggerSourceTriggerSource트리거의 원인이 되는 이벤트의 소스를 나타내는 열거형입니다.
WeekDayWeekday요일을 나타내는 열거형입니다.

메서드

메서드반환 유형간략한 설명
deleteTrigger(trigger)void더 이상 실행되지 않도록 지정된 트리거를 삭제합니다.
getAuthorizationInfo(authMode)AuthorizationInfo사용자가 이 스크립트를 승인하여 하나 이상의 서비스를 사용해야 하는지 확인하고 승인 대화상자의 URL을 제공하는 데 사용되는 객체를 가져옵니다.
getIdentityToken()Stringopenid 범위가 부여된 경우 유효 사용자의 OpenID Connect ID 토큰을 가져옵니다.
getInstallationSource()InstallationSource스크립트가 현재 사용자의 부가기능으로 설치된 방식을 나타내는 enum 값을 반환합니다 (예: 사용자가 Chrome 웹 스토어를 통해 스크립트를 개인적으로 설치했는지 또는 도메인 관리자가 모든 사용자를 위해 스크립트를 설치했는지 여부).
getOAuthToken()String유효 사용자의 OAuth 2.0 액세스 토큰을 가져옵니다.
getProjectTriggers()Trigger[]현재 프로젝트 및 현재 사용자와 연관된 설치 가능한 모든 트리거를 가져옵니다.
getScriptId()String스크립트 프로젝트의 고유 ID를 가져옵니다.
getService()Service스크립트를 웹 앱으로 게시하는 데 사용되는 객체를 가져옵니다.
getUserTriggers(document)Trigger[]이 스크립트 또는 부가기능에 대해서만 지정된 문서에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다.
getUserTriggers(form)Trigger[]이 스크립트 또는 부가기능에 대해서만 특정 형식의 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다.
getUserTriggers(spreadsheet)Trigger[]이 스크립트 또는 부가기능에 대해서만 지정된 스프레드시트에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다.
invalidateAuth()void실제 사용자가 현재 스크립트를 실행해야 하는 승인을 무효화합니다.
newStateToken()StateTokenBuilderOAuth API와 같이 콜백 API에서 사용할 수 있는 상태 토큰에 대한 빌더를 만듭니다.
newTrigger(functionName)TriggerBuilder실행될 때 지정된 함수를 호출하는 설치 가능한 트리거를 만드는 프로세스를 시작합니다.

자세한 문서

deleteTrigger(trigger)

더 이상 실행되지 않도록 지정된 트리거를 삭제합니다.

// Deletes all triggers in the current project.
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
  ScriptApp.deleteTrigger(triggers[i]);
}

매개변수

이름유형설명
triggerTrigger삭제할 트리거입니다.

승인

이 방법을 사용하는 스크립트에는 다음 범위 중 하나 이상을 사용하여 승인해야 합니다.

  • https://www.googleapis.com/auth/script.scriptapp

getAuthorizationInfo(authMode)

사용자가 이 스크립트를 승인하여 하나 이상의 서비스를 사용해야 하는지 확인하고 승인 대화상자의 URL을 제공하는 데 사용되는 객체를 가져옵니다. 스크립트가 설치 가능한 트리거를 사용하는 부가기능으로 게시되면 이 정보를 사용하여 사용자가 필요한 승인을 받지 못한 코드 섹션에 대한 액세스를 제어할 수 있습니다. 또는 부가기능이 사용자에게 승인 대화상자의 URL을 열어 문제를 해결하라고 요청할 수 있습니다.

var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
status = authInfo.getAuthorizationStatus();
url = authInfo.getAuthorizationUrl();

매개변수

이름유형설명
authModeAuthMode승인 정보가 요청되는 승인 모드. 대부분의 경우 authMode 값은 ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL)이어야 합니다. 다른 승인 모드에서는 사용자가 승인을 부여해야 하지 않기 때문입니다.

Return

AuthorizationInfo: 사용자의 승인 상태에 대한 정보를 제공할 수 있는 객체


getIdentityToken()

openid 범위가 부여된 경우 유효 사용자의 OpenID Connect ID 토큰을 가져옵니다. 이 범위는 기본적으로 포함되지 않으므로 요청 시 매니페스트 파일에 명시적 범위로 추가해야 합니다. 토큰에 추가 사용자 정보를 반환하려면 https://www.googleapis.com/auth/userinfo.email 또는 https://www.googleapis.com/auth/userinfo.profile 범위를 포함합니다.

반환된 ID 토큰은 인코딩된 JSON 웹 토큰 (JWT)이며 이 토큰에서 정보를 추출하려면 디코딩되어야 합니다. 다음 예시에서는 토큰을 디코딩하고 유효한 사용자의 Google 프로필 ID를 추출하는 방법을 보여줍니다.

var idToken = ScriptApp.getIdentityToken();
var body = idToken.split('.')[1];
var decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString();
var payload = JSON.parse(decoded);
var profileId = payload.sub;
Logger.log('Profile ID: ' + profileId);
반환된 필드 (소유권 주장)의 전체 목록은 OpenID Connect 문서를 참고하세요.

Return

String: 가능한 경우 ID 토큰입니다. 그렇지 않으면 null입니다.


getInstallationSource()

스크립트가 현재 사용자의 부가기능으로 설치된 방식을 나타내는 enum 값을 반환합니다 (예: 사용자가 Chrome 웹 스토어를 통해 스크립트를 개인적으로 설치했는지 또는 도메인 관리자가 모든 사용자를 위해 스크립트를 설치했는지 여부).

Return

InstallationSource — 설치 소스입니다.


getOAuthToken()

유효 사용자의 OAuth 2.0 액세스 토큰을 가져옵니다. 스크립트의 OAuth 범위는 일반적으로 자체 OAuth 흐름이 필요한 다른 Google API (예: Google 선택 도구)를 승인하는 데 충분하면 이 토큰을 대신 전달하여 두 번째 승인 프롬프트를 우회할 수 있습니다. 토큰은 시간 (최소 몇 분) 후에 만료됩니다. 스크립트는 승인 실패를 처리하고 필요한 경우 이 메서드를 호출하여 새 토큰을 가져와야 합니다.

이 메서드에서 반환하는 토큰에는 스크립트에 현재 필요한 범위만 포함됩니다. 이전에 승인되었지만 더 이상 스크립트에서 사용하지 않는 범위는 반환된 토큰에 포함되지 않습니다. 스크립트 자체에 필요 이상의 OAuth 범위가 필요한 경우 스크립트의 매니페스트 파일에 지정할 수 있습니다.

Return

String - OAuth 2.0 토큰의 문자열 표현입니다.


getProjectTriggers()

현재 프로젝트 및 현재 사용자와 연관된 설치 가능한 모든 트리거를 가져옵니다.

Logger.log('Current project has ' + ScriptApp.getProjectTriggers().length + ' triggers.');

Return

Trigger[]: 이 프로젝트와 연결된 현재 사용자 트리거의 배열입니다.

승인

이 방법을 사용하는 스크립트에는 다음 범위 중 하나 이상을 사용하여 승인해야 합니다.

  • https://www.googleapis.com/auth/script.scriptapp

getScriptId()

스크립트 프로젝트의 고유 ID를 가져옵니다. 이는 getProjectKey()가 아닌 스크립트 프로젝트의 고유 식별자를 가져오는 데 선호되는 메서드입니다. 이 ID는 이전에 프로젝트 키가 제공된 모든 위치에서 사용할 수 있습니다.

Return

String - 스크립트 프로젝트의 ID입니다.


getService()

스크립트를 웹 앱으로 게시하는 데 사용되는 객체를 가져옵니다.

// Get the URL of the published web app.
var url = ScriptApp.getService().getUrl();

Return

Service: 스크립트 게시를 웹 앱으로 관찰하고 제어하는 데 사용되는 객체입니다.


getUserTriggers(document)

이 스크립트 또는 부가기능에 대해서만 지정된 문서에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다. 이 메서드는 다른 스크립트에 연결된 트리거를 확인하는 데 사용할 수 없습니다.

var doc = DocumentApp.getActiveDocument();
var triggers = ScriptApp.getUserTriggers(doc);
// Log the handler function for the first trigger in the array.
Logger.log(triggers[0].getHandlerFunction());

매개변수

이름유형설명
documentDocument설치 가능한 트리거를 포함할 수 있는 Google Docs 파일입니다.

Return

Trigger[]: 지정된 문서에서 이 사용자가 소유한 트리거의 배열입니다.

승인

이 방법을 사용하는 스크립트에는 다음 범위 중 하나 이상을 사용하여 승인해야 합니다.

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(form)

이 스크립트 또는 부가기능에 대해서만 특정 형식의 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다. 이 메서드는 다른 스크립트에 연결된 트리거를 확인하는 데 사용할 수 없습니다.

var form = FormApp.getActiveForm();
var triggers = ScriptApp.getUserTriggers(form);
// Log the trigger source for the first trigger in the array.
Logger.log(triggers[0].getTriggerSource());

매개변수

이름유형설명
formForm설치 가능한 트리거를 포함할 수 있는 Google Forms 파일입니다.

Return

Trigger[] - 이 사용자가 소유한 트리거의 배열입니다.

승인

이 방법을 사용하는 스크립트에는 다음 범위 중 하나 이상을 사용하여 승인해야 합니다.

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(spreadsheet)

이 스크립트 또는 부가기능에 대해서만 지정된 스프레드시트에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다. 이 메서드는 다른 스크립트에 연결된 트리거를 확인하는 데 사용할 수 없습니다.

var ss = SpreadsheetApp.getActiveSpreadsheet();
var triggers = ScriptApp.getUserTriggers(ss);
// Log the event type for the first trigger in the array.
Logger.log(triggers[0].getEventType());

매개변수

이름유형설명
spreadsheetSpreadsheet설치 가능한 트리거를 포함할 수 있는 Google Sheets 파일입니다.

Return

Trigger[]: 지정된 스프레드시트에서 이 사용자가 소유한 트리거의 배열입니다.

승인

이 방법을 사용하는 스크립트에는 다음 범위 중 하나 이상을 사용하여 승인해야 합니다.

  • https://www.googleapis.com/auth/script.scriptapp

invalidateAuth()

실제 사용자가 현재 스크립트를 실행해야 하는 승인을 무효화합니다. 현재 스크립트의 권한을 무효화하는 데 사용됩니다. 이는 원샷 승인으로 태그가 지정된 함수에 특히 유용합니다. 원샷 승인 함수는 스크립트가 승인을 받은 후에만 처음 실행될 수 있으므로, 이후 작업을 수행하려면 스크립트에서 이루어진 승인을 취소해야 합니다. 그래야 사용자가 승인 대화상자를 다시 볼 수 있습니다.

ScriptApp.invalidateAuth();

예외 처리

Error: 무효화에 실패했을 때


newStateToken()

OAuth API와 같이 콜백 API에서 사용할 수 있는 상태 토큰에 대한 빌더를 만듭니다.

// Generate a callback URL, given the name of a callback function. The script does not need to
// be published as a web app; the /usercallback URL suffix replaces /edit in any script's URL.
function getCallbackURL(callbackFunction) {
  // IMPORTANT: Replace string below with the URL from your script, minus the /edit at the end.
  var scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz';
  var urlSuffix = '/usercallback?state=';
  var stateToken = ScriptApp.newStateToken()
      .withMethod(callbackFunction)
      .withTimeout(120)
      .createToken();
  return scriptUrl + urlSuffix + stateToken;
}

대부분의 OAuth2 흐름에서 state 토큰은 승인 URL에 직접 (콜백 URL의 일부가 아니라) 전달되며, 승인 엔드포인트는 이 토큰을 콜백 URL의 일부로 전달합니다.

예를 들면 다음과 같습니다.

  • 스크립트가 사용자를 OAuth2 인증 URL(https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters )로 리디렉션합니다.
  • 사용자가 승인을 클릭하면 OAuth2 승인 페이지가 사용자를 https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants (으)로 다시 리디렉션합니다.
  • 위의 리디렉션 (http://script.google.com/...로 돌아감)으로 인해 브라우저 요청이 /usercallback에 전달되고, 그러면 StateTokenBuilder.withMethod(method)에서 지정된 메서드가 호출됩니다.

Return

StateTokenBuilder: 상태 토큰 빌드 프로세스를 계속하는 데 사용되는 객체입니다.


newTrigger(functionName)

실행될 때 지정된 함수를 호출하는 설치 가능한 트리거를 만드는 프로세스를 시작합니다.

// Creates an edit trigger for a spreadsheet identified by ID.
ScriptApp.newTrigger('myFunction')
    .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3')
    .onEdit()
    .create();

매개변수

이름유형설명
functionNameString트리거가 실행될 때 호출할 함수입니다. 포함된 라이브러리의 함수(예: Library.libFunction1)를 사용할 수 있습니다.

Return

TriggerBuilder - 트리거 빌드 프로세스를 계속 진행하는 데 사용되는 객체입니다.

승인

이 방법을 사용하는 스크립트에는 다음 범위 중 하나 이상을 사용하여 승인해야 합니다.

  • https://www.googleapis.com/auth/script.scriptapp

지원 중단된 메서드