Class ScriptApp

ScriptApp

スクリプトの公開とトリガーにアクセスして操作する。このクラスを使用すると、ユーザーが サービスとしてのスクリプトの公開を制御します

プロパティ

プロパティタイプ説明
AuthModeAuthModeApps Script が実行できる承認済みサービスのカテゴリを識別する列挙値 呼び出すことができます。
AuthorizationStatusAuthorizationStatusスクリプトの承認ステータスを示す列挙型。
EventTypeEventTypeトリガーされたイベントのタイプを示す列挙型。
InstallationSourceInstallationSourceスクリプトがアドオンとしてユーザーにインストールされた方法を示す列挙値。
TriggerSourceTriggerSourceトリガーを発生させたイベントのソースを示す列挙型。
WeekDayWeekday曜日を表す列挙型。

メソッド

メソッド戻り値の型概要
deleteTrigger(trigger)void指定されたトリガーを削除して、実行を停止します。
getAuthorizationInfo(authMode)AuthorizationInfoユーザーがこのスクリプトの使用を認可する必要があるかどうかを判断するために使用されるオブジェクトを取得します。 認証ダイアログの URL も指定できます。
getIdentityToken()StringOpenID 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削除するトリガー。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • 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 Web Token(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 API(Google Picker など)に対して、スクリプトによって 代わりにこのトークンを渡します。トークンは、一定の時間( 少なくとも数分間)スクリプトで認証エラーを処理し、このメソッドを呼び出して、 トークンを取得できます。

このメソッドによって返されるトークンには、スクリプトで現在必要なスコープのみが含まれます。 以前に承認されていて、スクリプトで使用されなくなったスコープは、 返されます。スクリプト自体を超えた追加の OAuth スコープが必要な場合 スクリプトで指定できます。 使用します。

戻る

String - OAuth 2.0 トークンの文字列表現。


getProjectTriggers()

現在のプロジェクトと現在のユーザーに関連付けられているインストール可能なトリガーをすべて取得します。

Logger.log('Current project has ' + ScriptApp.getProjectTriggers().length + ' triggers.');

戻る

Trigger[] - このプロジェクトに関連付けられている現在のユーザーのトリガーの配列。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/script.scriptapp

getScriptId()

スクリプト プロジェクトの一意の ID を取得します。この方法は、一意の 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 ドキュメント ファイル。

戻る

Trigger[] - 指定されたドキュメント内でこのユーザーが所有するトリガーの配列。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • 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 フォーム ファイル。

戻る

Trigger[] - 指定された形式でこのユーザーが所有するトリガーの配列。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • 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 スプレッドシート ファイル。

戻る

Trigger[] - 指定されたスプレッドシートでこのユーザーが所有するトリガーの配列。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/script.scriptapp

invalidateAuth()

有効なユーザーが現在のスクリプトを実行するために必要な承認を無効にします。目的 現在のスクリプトの権限をすべて無効にします。これは関数で特に有用です。 ワンショット認証としてタグ付けされます。ワンショット認可関数は、最初の API 呼び出しでしか アクションを実行する場合は、まずスクリプトが認可を取得した後に実行します。 スクリプトの承認を取り消して、ユーザーがスクリプトの内容を確認できるように 確認ダイアログが表示されます。

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();

パラメータ

名前説明
functionNameStringトリガーの起動時に呼び出す関数。次の関数から関数を使用できます: インクルードされているライブラリ(Library.libFunction1 など)。

戻る

TriggerBuilder - トリガー構築プロセスを続行するために使用されるオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/script.scriptapp

サポート終了のメソッド