Class ScriptApp

ScriptApp

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

속성

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

메서드

메서드반환 유형간략한 설명
deleteTrigger(trigger)void더 이상 실행되지 않도록 지정된 트리거를 삭제합니다.
getAuthorizationInfo(authMode)AuthorizationInfo사용자가 이 스크립트를 사용하도록 승인해야 하는지 여부를 결정하는 데 사용되는 객체를 가져옵니다. 승인 대화상자의 URL을 제공합니다.
getIdentityToken()String다음에 대한 OpenID Connect ID 토큰을 가져옵니다. openid 범위가 부여된 경우 유효 사용자입니다.
getInstallationSource()InstallationSource스크립트가 현재 사용자 (예: 사용자가 Chrome 웹을 통해 개인적으로 설치했는지 여부) 저장 또는 도메인 관리자가 모든 사용자에 대해 설치했는지 여부).
getOAuthToken()StringOAuth 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 Connect ID 토큰을 가져옵니다. openid 범위가 부여된 경우 유효 사용자입니다. 이 범위는 포함되지 않습니다. 매니페스트에 이 범위를 명시적 범위로 추가해야 합니다. 파일을 사용하여 요청합니다. 추가로 반환하려면 범위 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 범위가 승인하기에 충분한 경우 다른 Google API에 일반적으로 자체 OAuth 흐름이 필요한 경우 (예: Google 선택 도구) 스크립트가 이 토큰을 대신 전달하여 두 번째 승인 메시지를 표시할 수 있습니다. 토큰은 일정 시간( 최소 몇 분) 스크립트는 인증 실패를 처리하고 이 메서드를 호출하여 새 토큰을 가져올 수 있습니다

이 메서드가 반환하는 토큰에는 현재 스크립트에 필요한 범위만 포함됩니다. 이전에 승인되었지만 더 이상 스크립트에서 사용하지 않는 범위는 다음에 포함되지 않습니다. 반환합니다. 스크립트 자체 범위 외에 추가 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의 일부가 아님)하고, 승인 엔드포인트는 이를 부분을 참조하세요.

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

  • 스크립트가 사용자를 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

지원 중단된 메서드