Class ScriptApp

ScriptApp

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

속성

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

방법

메서드반환 유형간략한 설명
deleteTrigger(trigger)void지정된 트리거를 삭제하여 더 이상 실행되지 않도록 합니다.
getAuthorizationInfo(authMode)AuthorizationInfo이 스크립트가 하나 이상의 서비스를 사용하기 위해 사용자가 이 스크립트를 승인해야 하는지 확인하고 승인 대화상자의 URL을 제공하는 데 사용되는 객체를 가져옵니다.
getIdentityToken()Stringopenid 범위가 부여된 경우 유효 사용자의 OpenID Connect ID 토큰을 가져옵니다.
getInstallationSource()InstallationSource스크립트가 현재 사용자의 부가기능으로 설치된 방법을 나타내는 열거형 값을 반환합니다 (예: 사용자가 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()StateTokenBuilder콜백 API에서 사용할 수 있는 상태 토큰의 빌더를 만듭니다 (예: OAuth 흐름).
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)이어야 합니다.

리턴

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 문서를 참조하세요.

리턴

String - ID 토큰(사용 가능한 경우)이고 그렇지 않으면 null입니다.


getInstallationSource()

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

리턴

InstallationSource - 설치 소스입니다.


getOAuthToken()

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

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

리턴

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


getProjectTriggers()

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

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

리턴

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

승인

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

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

getScriptId()

스크립트 프로젝트의 고유 ID를 가져옵니다. 이 방법은 getProjectKey()과는 반대로 스크립트 프로젝트의 고유 식별자를 가져올 때 선호되는 방법입니다. 이 ID는 이전에 프로젝트 키가 제공된 모든 위치에서 사용할 수 있습니다.

리턴

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


getService()

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

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

리턴

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 파일입니다.

리턴

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 파일입니다.

리턴

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 파일입니다.

리턴

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

승인

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

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

invalidateAuth()

유효 사용자가 현재 스크립트를 실행하는 데 필요한 권한을 무효화합니다. 현재 스크립트의 권한을 무효화하는 데 사용됩니다. 이 기능은 원샷 승인으로 태그된 함수에 특히 유용합니다. 원샷 승인 함수는 스크립트가 승인을 얻은 후에만 최초 실행에서 호출될 수 있으므로 이후에 작업을 실행하려면 스크립트에 부여된 모든 승인을 취소해야 사용자가 승인 대화상자를 다시 볼 수 있습니다.

ScriptApp.invalidateAuth();

생성 값

Error: 무효화가 실패하는 경우


newStateToken()

콜백 API에서 사용할 수 있는 상태 토큰의 빌더를 만듭니다 (예: OAuth 흐름).

// 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의 일부로 전달합니다.

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

  • 스크립트가 사용자를 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)에서 지정된 메서드가 호출됩니다.

리턴

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


newTrigger(functionName)

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

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

매개변수

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

리턴

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

승인

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

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

지원 중단된 메서드