스크립트 게시 및 트리거에 액세스하고 이를 조작합니다. 이 클래스를 통해 사용자는 스크립트 트리거를 만들고 스크립트를 서비스로 게시하는 것을 제어할 수 있습니다.
속성
속성 | 유형 | 설명 |
---|---|---|
AuthMode | AuthMode | Apps Script가 트리거 함수를 통해 실행할 수 있는 승인된 서비스 카테고리를 식별하는 열거형입니다. |
AuthorizationStatus | AuthorizationStatus | 스크립트의 승인 상태를 나타내는 열거형입니다. |
EventType | EventType | 트리거된 이벤트 유형을 나타내는 열거형입니다. |
InstallationSource | InstallationSource | 스크립트가 부가기능으로 사용자에게 설치된 방식을 보여주는 열거형입니다. |
TriggerSource | TriggerSource | 트리거의 원인이 되는 이벤트의 소스를 나타내는 열거형입니다. |
WeekDay | Weekday | 요일을 나타내는 열거형입니다. |
메서드
메서드 | 반환 유형 | 간략한 설명 |
---|---|---|
deleteTrigger(trigger) | void | 더 이상 실행되지 않도록 지정된 트리거를 삭제합니다. |
getAuthorizationInfo(authMode) | AuthorizationInfo | 사용자가 이 스크립트를 승인하여 하나 이상의 서비스를 사용해야 하는지 확인하고 승인 대화상자의 URL을 제공하는 데 사용되는 객체를 가져옵니다. |
getIdentityToken() | String | openid 범위가 부여된 경우 유효 사용자의 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() | StateTokenBuilder | OAuth 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]); }
매개변수
이름 | 유형 | 설명 |
---|---|---|
trigger | Trigger | 삭제할 트리거입니다. |
승인
이 방법을 사용하는 스크립트에는 다음 범위 중 하나 이상을 사용하여 승인해야 합니다.
-
https://www.googleapis.com/auth/script.scriptapp
getAuthorizationInfo(authMode)
사용자가 이 스크립트를 승인하여 하나 이상의 서비스를 사용해야 하는지 확인하고 승인 대화상자의 URL을 제공하는 데 사용되는 객체를 가져옵니다. 스크립트가 설치 가능한 트리거를 사용하는 부가기능으로 게시되면 이 정보를 사용하여 사용자가 필요한 승인을 받지 못한 코드 섹션에 대한 액세스를 제어할 수 있습니다. 또는 부가기능이 사용자에게 승인 대화상자의 URL을 열어 문제를 해결하라고 요청할 수 있습니다.
var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); status = authInfo.getAuthorizationStatus(); url = authInfo.getAuthorizationUrl();
매개변수
이름 | 유형 | 설명 |
---|---|---|
authMode | AuthMode | 승인 정보가 요청되는 승인 모드. 대부분의 경우 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()
getScriptId()
스크립트 프로젝트의 고유 ID를 가져옵니다. 이는
가 아닌 스크립트 프로젝트의 고유 식별자를 가져오는 데 선호되는 메서드입니다. 이 ID는 이전에 프로젝트 키가 제공된 모든 위치에서 사용할 수 있습니다.getProjectKey()
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());
매개변수
이름 | 유형 | 설명 |
---|---|---|
document | Document | 설치 가능한 트리거를 포함할 수 있는 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());
매개변수
이름 | 유형 | 설명 |
---|---|---|
form | Form | 설치 가능한 트리거를 포함할 수 있는 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());
매개변수
이름 | 유형 | 설명 |
---|---|---|
spreadsheet | Spreadsheet | 설치 가능한 트리거를 포함할 수 있는 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();
매개변수
이름 | 유형 | 설명 |
---|---|---|
functionName | String | 트리거가 실행될 때 호출할 함수입니다. 포함된 라이브러리의 함수(예: Library.libFunction1 )를 사용할 수 있습니다. |
Return
TriggerBuilder
- 트리거 빌드 프로세스를 계속 진행하는 데 사용되는 객체입니다.
승인
이 방법을 사용하는 스크립트에는 다음 범위 중 하나 이상을 사용하여 승인해야 합니다.
-
https://www.googleapis.com/auth/script.scriptapp