스크립트 게시 및 트리거에 액세스하고 조작합니다. 이 클래스를 사용하면 사용자가 스크립트 트리거를 만들고 스크립트를 서비스로 게시하는 것을 제어할 수 있습니다.
속성
속성 | 유형 | 설명 |
---|---|---|
Auth | Auth | Apps Script가 트리거된 함수를 통해 실행할 수 있는 승인된 서비스의 카테고리를 식별하는 열거형입니다. |
Authorization | Authorization | 스크립트의 승인 상태를 나타내는 열거형입니다. |
Event | Event | 트리거된 이벤트 유형을 나타내는 열거형입니다. |
Installation | Installation | 스크립트가 사용자에게 부가기능으로 설치된 방식을 나타내는 열거형입니다. |
Trigger | Trigger | 트리거가 실행되는 이벤트의 소스를 나타내는 열거형입니다. |
Week | Weekday | 요일을 나타내는 열거형입니다. |
메서드
메서드 | 반환 유형 | 간략한 설명 |
---|---|---|
delete | void | 지정된 트리거를 삭제하여 더 이상 실행되지 않도록 합니다. |
get | Authorization | 사용자가 하나 이상의 서비스를 사용하도록 이 스크립트를 승인해야 하는지 확인하고 승인 대화상자의 URL을 제공하는 데 사용되는 객체를 가져옵니다. |
get | String | openid 범위가 부여된 경우 유효 사용자의 Open |
get | Installation | 스크립트가 현재 사용자의 부가기능으로 설치된 방법을 나타내는 enum 값을 반환합니다 (예: 사용자가 Chrome 웹 스토어를 통해 직접 설치했는지 또는 도메인 관리자가 모든 사용자를 위해 설치했는지 여부). |
get | String | 유효한 사용자의 OAuth 2.0 액세스 토큰을 가져옵니다. |
get | Trigger[] | 현재 프로젝트 및 현재 사용자와 연결된 설치 가능한 모든 트리거를 가져옵니다. |
get | String | 스크립트 프로젝트의 고유 ID를 가져옵니다. |
get | Service | 스크립트를 웹 앱으로 게시하는 것을 제어하는 데 사용되는 객체를 가져옵니다. |
get | Trigger[] | 이 스크립트 또는 부가기능에 대해서만 지정된 문서에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다. |
get | Trigger[] | 이 스크립트 또는 부가기능에 대해서만 지정된 양식에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다. |
get | Trigger[] | 이 스크립트 또는 부가기능에 대해서만 지정된 스프레드시트에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다. |
invalidate | void | 유효한 사용자가 현재 스크립트를 실행하는 데 필요한 승인을 무효화합니다. |
new | State | 콜백 API (예: OAuth 흐름)에서 사용할 수 있는 상태 토큰의 빌더를 만듭니다. |
new | Trigger | 실행 시 지정된 함수를 호출하는 설치 가능한 트리거를 만드는 프로세스를 시작합니다. |
자세한 문서
delete Trigger(trigger)
지정된 트리거를 삭제하여 더 이상 실행되지 않도록 합니다.
// Deletes all triggers in the current project. const triggers = ScriptApp.getProjectTriggers(); for (let i = 0; i < triggers.length; i++) { ScriptApp.deleteTrigger(triggers[i]); }
매개변수
이름 | 유형 | 설명 |
---|---|---|
trigger | Trigger | 삭제할 트리거입니다. |
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상의 승인이 필요합니다.
-
https://www.googleapis.com/auth/script.scriptapp
get Authorization Info(authMode)
사용자가 하나 이상의 서비스를 사용하도록 이 스크립트를 승인해야 하는지 확인하고 승인 대화상자의 URL을 제공하는 데 사용되는 객체를 가져옵니다. 스크립트가 설치 가능한 트리거를 사용하는 부가기능으로 게시된 경우 이 정보를 사용하여 사용자가 필요한 승인을 받지 못한 코드 섹션에 대한 액세스를 제어할 수 있습니다. 또는 부가기능에서 사용자에게 승인 대화상자의 URL을 열어 문제를 해결하도록 요청할 수 있습니다.
var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); status = authInfo.getAuthorizationStatus(); url = authInfo.getAuthorizationUrl();
매개변수
이름 | 유형 | 설명 |
---|---|---|
auth | Auth | 승인 정보가 요청되는 승인 모드입니다. 거의 모든 경우 auth 의 값은 Script 여야 합니다. 다른 승인 모드에서는 사용자가 승인을 부여해야 하기 때문입니다. |
리턴
Authorization
: 사용자의 승인 상태에 관한 정보를 제공할 수 있는 객체입니다.
get Identity Token()
openid
범위가 부여된 경우 유효 사용자의 Openhttps://www.googleapis.com/auth/userinfo.email
또는 https://www.googleapis.com/auth/userinfo.profile
를 포함합니다.
반환된 ID 토큰은 인코딩된 JSON 웹 토큰 (JWT)이며, 이 토큰에서 정보를 추출하려면 디코딩해야 합니다. 다음 예는 토큰을 디코딩하고 실제 사용자의 Google 프로필 ID를 추출하는 방법을 보여줍니다.
const idToken = ScriptApp.getIdentityToken(); const body = idToken.split('.')[1]; const decoded = Utilities .newBlob( Utilities.base64Decode(body), ) .getDataAsString(); const payload = JSON.parse(decoded); Logger.log(`Profile ID: ${payload.sub}`);반환된 필드 (요구사항)의 전체 목록은 Open
리턴
String
: ID 토큰(있는 경우)입니다. 그렇지 않으면 null
입니다.
get Installation Source()
스크립트가 현재 사용자의 부가기능으로 설치된 방법을 나타내는 enum 값을 반환합니다 (예: 사용자가 Chrome 웹 스토어를 통해 직접 설치했는지 또는 도메인 관리자가 모든 사용자를 위해 설치했는지 여부).
리턴
Installation
: 설치 소스입니다.
get OAuth Token()
유효한 사용자의 OAuth 2.0 액세스 토큰을 가져옵니다. 스크립트의 OAuth 범위가 일반적으로 자체 OAuth 흐름이 필요한 다른 Google API (예: Google 선택 도구)를 승인하기에 충분한 경우 스크립트는 이 토큰을 대신 전달하여 두 번째 승인 메시지를 우회할 수 있습니다. 토큰은 일정 시간이 지나면 만료됩니다 (최소 몇 분). 스크립트는 승인 실패를 처리하고 필요한 경우 이 메서드를 호출하여 새 토큰을 가져와야 합니다.
이 메서드에서 반환하는 토큰에는 스크립트에 현재 필요한 범위만 포함됩니다. 이전에 승인되었지만 더 이상 스크립트에서 사용되지 않는 범위는 반환된 토큰에 포함되지 않습니다. 스크립트 자체에 필요한 것 외에도 추가 OAuth 범위가 필요한 경우 스크립트의 매니페스트 파일에서 지정할 수 있습니다.
리턴
String
: OAuth 2.0 토큰의 문자열 표현입니다.
get Project Triggers()
get Script Id()
스크립트 프로젝트의 고유 ID를 가져옵니다.
대신 스크립트 프로젝트의 고유 식별자를 가져오는 데 권장되는 방법입니다. 이 ID는 이전에 프로젝트 키가 제공된 모든 위치에서 사용할 수 있습니다.get
리턴
String
: 스크립트 프로젝트의 ID입니다.
get Service()
스크립트를 웹 앱으로 게시하는 것을 제어하는 데 사용되는 객체를 가져옵니다.
// Get the URL of the published web app. const url = ScriptApp.getService().getUrl();
리턴
Service
: 스크립트를 웹 앱으로 게시하는 것을 관찰하고 제어하는 데 사용되는 객체입니다.
get User Triggers(document)
이 스크립트 또는 부가기능에 대해서만 지정된 문서에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다. 이 메서드는 다른 스크립트에 연결된 트리거를 확인하는 데 사용할 수 없습니다.
const doc = DocumentApp.getActiveDocument(); const 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
get User Triggers(form)
이 스크립트 또는 부가기능에 대해서만 지정된 양식에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다. 이 메서드는 다른 스크립트에 연결된 트리거를 확인하는 데 사용할 수 없습니다.
const form = FormApp.getActiveForm(); const 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
get User Triggers(spreadsheet)
이 스크립트 또는 부가기능에 대해서만 지정된 스프레드시트에서 이 사용자가 소유한 설치 가능한 모든 트리거를 가져옵니다. 이 메서드는 다른 스크립트에 연결된 트리거를 확인하는 데 사용할 수 없습니다.
const ss = SpreadsheetApp.getActiveSpreadsheet(); const 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
invalidate Auth()
유효한 사용자가 현재 스크립트를 실행하는 데 필요한 승인을 무효화합니다. 현재 스크립트의 모든 권한을 무효화하는 데 사용됩니다. 이는 일회성 승인으로 태그된 함수에 특히 유용합니다. 일회성 승인 함수는 스크립트가 승인을 획득한 후 첫 실행에서만 호출할 수 있으므로 나중에 작업을 실행하려면 사용자가 승인 대화상자를 다시 볼 수 있도록 스크립트의 승인을 취소해야 합니다.
ScriptApp.invalidateAuth();
생성 값
Error
: 무효화가 실패한 경우
new State Token()
콜백 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. const scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz'; const urlSuffix = '/usercallback?state='; const 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
에 요청을 보내고State
에 지정된 메서드를 호출합니다.Token Builder.withMethod(method)
리턴
State
: 상태 토큰 빌드 프로세스를 계속하는 데 사용되는 객체입니다.
new Trigger(functionName)
실행 시 지정된 함수를 호출하는 설치 가능한 트리거를 만드는 프로세스를 시작합니다.
// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3') .onEdit() .create();
매개변수
이름 | 유형 | 설명 |
---|---|---|
function | String | 트리거가 실행될 때 호출할 함수입니다. 포함된 라이브러리(예: Library.libFunction1 )의 함수를 사용할 수 있습니다. |
리턴
Trigger
: 트리거 빌드 프로세스를 계속하는 데 사용되는 객체입니다.
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상의 승인이 필요합니다.
-
https://www.googleapis.com/auth/script.scriptapp