스크립트 게시 및 트리거에 액세스하고 조작합니다. 이 클래스를 통해 사용자는 스크립트 트리거를 만들고 스크립트를 서비스로 게시하는 것을 제어할 수 있습니다.
속성
속성 | 유형 | 설명 |
---|---|---|
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 | 스크립트가 현재 사용자의 부가기능으로 설치된 방법을 나타내는 열거형 값을 반환합니다 (예: 사용자가 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]); }
매개변수
이름 | 유형 | 설명 |
---|---|---|
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) 이어야 합니다. |
리턴
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()
getScriptId()
스크립트 프로젝트의 고유 ID를 가져옵니다. 이 방법은
과는 반대로 스크립트 프로젝트의 고유 식별자를 가져올 때 선호되는 방법입니다. 이 ID는 이전에 프로젝트 키가 제공된 모든 위치에서 사용할 수 있습니다.getProjectKey()
리턴
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());
매개변수
이름 | 유형 | 설명 |
---|---|---|
document | Document | 설치 가능한 트리거가 포함될 수 있는 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());
매개변수
이름 | 유형 | 설명 |
---|---|---|
form | Form | 설치 가능한 트리거가 포함될 수 있는 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());
매개변수
이름 | 유형 | 설명 |
---|---|---|
spreadsheet | Spreadsheet | 설치 가능한 트리거가 포함되어 있을 수 있는 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();
매개변수
이름 | 유형 | 설명 |
---|---|---|
functionName | String | 트리거가 실행될 때 호출할 함수입니다. 포함된 라이브러리의 함수(예: Library.libFunction1 )를 사용할 수 있습니다. |
리턴
TriggerBuilder
- 트리거 빌드 프로세스를 계속하는 데 사용되는 객체입니다.
승인
이 방법을 사용하는 스크립트는 다음 범위 중 하나 이상을 승인해야 합니다.
-
https://www.googleapis.com/auth/script.scriptapp