Class ScriptApp

ScriptApp

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

Properties

プロパティ種類説明
AuthModeAuthModeトリガーされた関数を使用して Apps Script が実行できる承認済みのサービスのカテゴリを識別する列挙型。
AuthorizationStatusAuthorizationStatusスクリプトの認証ステータスを示す列挙型。
EventTypeEventTypeトリガーされたイベントのタイプを示す列挙型。
InstallationSourceInstallationSourceスクリプトがアドオンとしてユーザーにインストールされた方法を示す列挙型。
TriggerSourceTriggerSourceトリガーを発動させるイベントのソースを示す列挙型。
WeekDayWeekday曜日を表す列挙型。

Methods

方法戻り値の型概要
deleteTrigger(trigger)void指定されたトリガーを削除して、実行を停止します。
getAuthorizationInfo(authMode)AuthorizationInfoユーザーが 1 つ以上のサービスを使用してこのスクリプトを承認する必要があるかどうかを判断し、承認ダイアログの URL を提供するために使用されるオブジェクトを取得します。
getIdentityToken()Stringopenid スコープが付与されている場合、有効なユーザーの 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]);
}

パラメータ

名前説明
triggerTrigger削除するトリガー。

認可

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

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

getAuthorizationInfo(authMode)

ユーザーが 1 つ以上のサービスを使用してこのスクリプトを承認する必要があるかどうかを判断し、承認ダイアログの 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 スコープが付与されている場合、有効なユーザーの 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 API(Google Picker など)の認証に十分な場合は、代わりにこのトークンを渡して、2 つ目の認証プロンプトをバイパスできます。トークンは一定時間(最低でも数分)後に期限切れになります。スクリプトは承認の失敗を処理し、必要に応じてこのメソッドを呼び出して新しいトークンを取得する必要があります。

このメソッドで返されるトークンには、スクリプトで必要なスコープのみが含まれます。 以前に認可されたものの、スクリプトで使用されなくなったスコープは、返されるトークンには含まれません。スクリプト自体が必要とするもの以外の 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 を取得します。スクリプト プロジェクトの一意の識別子を 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()

有効なユーザーが現在のスクリプトを実行するために必要な承認を無効にします。現在のスクリプトの権限を無効にするために使用される。これは、ワンショット承認としてタグ付けされている関数で特に便利です。ワンショット認証関数は、スクリプトが認証を取得した後に初めて実行することができます。そのため、後で操作を実行する場合は、スクリプトが持つ認可を取り消して、ユーザーが再度認証ダイアログを表示できるようにする必要があります。

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

サポート終了のメソッド