組み込みの Google サービス

Google Apps Script には、ユーザーデータ、他の Google システム、外部システムとやり取りするための 30 を超える組み込みサービスが用意されています。これらのサービスは、 グローバル オブジェクトとして提供され、JavaScript の標準 Math 渡されます。たとえば、Mathrandom()PI、Apps Script の スプレッドシート サービスでは、 openById(id), などのクラス(子オブジェクト)に Range、および次のような列挙型があります。 DataValidationCriteria

Google Workspace プロダクトを制御するサービスのリファレンス ドキュメントは、このサイトのサイドバーの [リファレンス] ヘッダーにある [Google Workspace サービス] セクションにまとめられています。公共事業 (ユーザー インターフェースの作成、XML の解析、ログデータの書き込みなど)に関する情報が収集され、 [スクリプトサービス]でできます。

最新の JavaScript の機能

Apps Script では、2 つの JavaScript ランタイムがサポートされています。 V8 ランタイムと Mozilla が提供する古いランタイム Rhino JavaScript インタープリタ

V8 ランタイムは、 ECMAScript の構文と機能。 Rhino ランタイムは、古い JavaScript 1.6 標準と、1.71.8 のいくつかの機能をベースにしています。スクリプトで使用するランタイムは自由に選択できますが、V8 ランタイムを使用することを強くおすすめします。

各ランタイムは、組み込みの 高度な Google サービスに加えて、スクリプトで使用できる JavaScript クラスとオブジェクトをサポートしています。スクリプトでは、ArrayDateRegExp などの一般的なオブジェクトや、MathObject のグローバル オブジェクトを使用できます。

予測入力の使用

スクリプト エディタには「コンテンツ アシスト」機能(一般に「オートコンプリート」と呼ばれます)があります。この機能を使用すると、スクリプトの現在のコンテキストで有効なグローバル オブジェクト、メソッド、列挙型を確認できます。Apps Script クラスを返すグローバル オブジェクト、列挙型、メソッド呼び出しの後にピリオドを入力すると、自動的に候補が表示されます。例:

  • グローバル オブジェクトの完全な名前を入力するか、予測入力からグローバル オブジェクトを選択すると、 .(ピリオド)と入力すると、そのクラスのすべてのメソッドと列挙型が表示されます。
  • 数文字を入力すると、その文字で始まる有効な候補がすべて表示されます。

グローバル オブジェクトについて

各サービスは少なくとも 1 つのグローバル(トップレベル)オブジェクトを提供します。たとえば Gmail サービスには GmailApp オブジェクト。一部のサービスは複数のグローバル オブジェクトを提供します。たとえば、ベースサービスには、BrowserLoggerMimeTypeSession の 4 つのグローバル オブジェクトが含まれています。

呼び出し方法

組み込みのほぼすべての組み込みオブジェクトまたは 拡張サービスには、 データまたは Apps Script クラスを返します。スクリプトは、次の形式でメソッドを呼び出します。

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

たとえば、スクリプトは Gmail サービスの sendEmail(recipient, subject, body) メソッドを呼び出してメールを送信できます。

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

メソッドが別の Apps Script クラスを返す場合、1 つの Apps Script クラスでメソッド呼び出しを連結できる 追加します。(戻り値の型は予測入力とメソッドの参照内の両方に表示されます) documentation.)たとえば、 DocumentApp.create() Document を返します。したがって、 次の 2 つのコード セクションは同等です。

var doc = DocumentApp.create('New document');
var body = doc.getTab('t.0').asDocumentTab().getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getTab('t.0').asDocumentTab().getBody()
    .appendParagraph('New paragraph.');

子クラスへのアクセス

どのサービスにも、アクセスできない子クラスが 1 つ以上含まれている グローバル オブジェクトと同様に使用できます。new キーワードを使用して以下のことを行うことはできません。 などの標準の JavaScript クラスと同様に、これらのクラスを作成します。 Date; 子クラスにアクセスするには、その子クラスを返すメソッドを呼び出す必要があります。もし 特定のクラスへのアクセス方法がわからない場合は、 必要なクラスを返すメソッドを探します。

インターフェースの処理

一部のサービスには、リファレンス ドキュメントで「インターフェース」とラベル付けされた特別なクラスが含まれています。これらは戻り値の型として使用される汎用クラスです。 正確な型を事前に判断できないメソッドの場合たとえば Document サービス メソッド Body.getChild(childIndex) 汎用の Element オブジェクトを返します。 Element は、他のクラスを表すインターフェースです。 Paragraph または Table。インターフェース オブジェクトはほとんどが 役立ちます。通常は Element.asParagraph() 正確なクラスにキャストし直す必要があります。

列挙型の操作

ほとんどのサービスには、名前付き値の列挙型(列挙型)がいくつか含まれています。対象 ドライブ サービスは列挙型を使用します。 AccessPermission でどのユーザーが アクセスを許可できます。ほとんどの場合、これらの列挙型にはグローバル オブジェクトからアクセスします。たとえば、このメソッドの呼び出しは、 Folder.setSharing(accessType, permissionType) 次のようになります。

// Creates a folder that anyone on the Internet can read from and write to. (Domain administrators can
// prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);