スクリプトの公開とトリガーにアクセスして操作します。このクラスを使用すると、スクリプト トリガーを作成して、スクリプトをサービスとして公開できます。
プロパティ
プロパティ | タイプ | 説明 |
---|---|---|
Auth | Auth | トリガーされた関数で Apps Script が実行できる承認済みサービスのカテゴリを識別する列挙型。 |
Authorization | Authorization | スクリプトの承認ステータスを示す列挙型。 |
Event | Event | トリガーされたイベントのタイプを示す列挙型。 |
Installation | Installation | スクリプトがアドオンとしてユーザーにインストールされた方法を示す列挙型。 |
Trigger | Trigger | トリガーをトリガーするイベントのソースを示す列挙型。 |
Week | Weekday | 曜日を表す列挙型。 |
メソッド
メソッド | 戻り値の型 | 概要 |
---|---|---|
delete | void | 指定したトリガーを削除して、トリガーが実行されないようにします。 |
get | Authorization | 1 つ以上のサービスを使用するためにユーザーがこのスクリプトを承認する必要があるかどうかを判断し、承認ダイアログの URL を提供するのに使用されるオブジェクトを取得します。 |
get | String | openid スコープが付与されている場合、有効なユーザーの Open |
get | Installation | 現在のユーザーのアドバタイズとしてスクリプトがインストールされた方法(ユーザーが 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 | 削除するトリガー。 |
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。
-
https://www.googleapis.com/auth/script.scriptapp
get Authorization Info(authMode)
1 つ以上のサービスを使用するためにユーザーがこのスクリプトを承認する必要があるかどうかを判断し、承認ダイアログの 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 Web Token(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}`);返されるフィールド(クレーム)の一覧については、OpenID Connect のドキュメントをご覧ください。
戻る
String
- ID トークン(利用可能な場合)。利用できない場合は null
。
get Installation Source()
現在のユーザー用にスクリプトがアドオンとしてインストールされた方法(ユーザーが Chrome ウェブストアから個人的にインストールしたのか、ドメイン管理者がすべてのユーザーにインストールしたのかなど)を示す列挙型の値を返します。
戻る
Installation
- インストール元。
get OAuth Token()
有効なユーザーの OAuth 2.0 アクセス トークンを取得します。スクリプトの OAuth スコープが、通常は独自の OAuth フロー(Google Picker など)を必要とする別の Google API を承認するのに十分な場合、スクリプトは代わりにこのトークンを渡すことで、2 回目の承認プロンプトを回避できます。トークンは一定の時間が経過すると期限切れになります(最小で数分)。スクリプトは認証エラーを処理し、必要に応じてこのメソッドを呼び出して新しいトークンを取得する必要があります。
このメソッドによって返されるトークンには、スクリプトが現在必要とするスコープのみが含まれます。以前に承認されたが、スクリプトで使用されなくなったスコープは、返されるトークンに含まれません。スクリプト自体で必要な 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 ドキュメント ファイル。 |
戻る
Trigger[]
- 指定されたドキュメントでこのユーザーが所有するトリガーの配列。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。
-
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 フォーム ファイル。 |
戻る
Trigger[]
- 指定されたフォームでこのユーザーが所有するトリガーの配列。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。
-
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 スプレッドシート ファイル。 |
戻る
Trigger[]
- 指定されたスプレッドシートでこのユーザーが所有するトリガーの配列。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。
-
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
- トリガーの作成プロセスを続行するために使用されるオブジェクト。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。
-
https://www.googleapis.com/auth/script.scriptapp