Looking for google-apps-script Answers? Try Ask4KnowledgeBase
Looking for google-apps-script Keywords? Try Ask4Keywords

google-apps-scriptgoogle-apps-scriptを使い始める


備考

Google Apps Scriptの公式概要はhttp://www.google.com/script/startに掲載されています。

Google Apps ScriptはJavaScriptクラウドスクリプト言語で、Googleサービスやサードパーティサービス全体のタスクを自動化してウェブアプリケーションを構築する簡単な方法を提供します。

https://developers.google.com/apps-script/guides/services/#basic_javascript_featuresから

Apps ScriptはJavaScript 1.6に加え、 1.71.8のいくつかの機能を搭載しています。組み込みの高度なGoogleサービスに加えて、 ArrayDateRegExpなどの共通オブジェクト、 および Math オブジェクトObjectグローバルオブジェクトを使用できます。ただし、AppsスクリプトコードはGoogleのサーバー( HTMLサービスページを除くクライアント側ではありません)上で動作するため、DOM操作やWindow APIなどのブラウザベースの機能は利用できません。

Google Apps Scriptの詳細

Google Apps Scriptは、主にGoogle Appsの自動化と拡張に使用されるJavaScriptベースのプラットフォームです。 Appsスクリプトは、サーバーのプロビジョニングや設定を必要とせずにGoogleのインフラストラクチャでのみ実行されます。オンラインIDEは、Apps Scriptで使用可能なすべてのサービスを接続するプラットフォーム全体のインターフェイスとして機能します。ユーザ認証はOAuth2経由でプラットフォームに組み込まれ、スクリプト作成者はコードや設定を必要としません。

Appsスクリプトはサーバー側で実行されますが、HTML、CSS、JavaScript、またはその他のブラウザ対応技術で構築されたユーザーインターフェイスを持つことができます。イベントドリブンであるNodejとは異なり、App Scriptsはスレッドモデルで実行されます。スクリプトへのすべての呼び出しは、他のすべてのインスタンスとは独立して実行されるそのスクリプトの一意のインスタンスを生成します。スクリプトのインスタンスが実行を終了すると、そのインスタンスは破棄されます。

Appsスクリプトの機能がブロックされているため、コールバックと非同期のプログラミングパターンが不要です。ロックは、ファイルIOなどのコードのクリティカルセクションが異なるインスタンスによって同時に実行されないようにするために使用されます。

実際にAppsスクリプトを書くのは簡単です。以下は、テンプレートスプレッドシートから新しいスプレッドシートを作成する簡単なスクリプトです。

// Create a new spreadsheet from a template
function createSpreadsheet(){
   var templateFileId = '1Azcz9GwCeHjGl9TXf4aUh6g20Eqmgd1UMSdNVjzIZPk';
   var sheetName = 'Account Log for:' + new Date();
   SpreadsheetApp.openById(templateFileId).copy(sheetName);   
} 
 

こんにちは世界

我々はメッセージボックスとしてハローと言うつもりです。

function helloWorld() 
{
  Browser.msgBox("Hello World");
}
 

スクリプトを実行するには、▶をクリックするか、メニュー項目Run- > helloWorldを選択します

インストールまたはセットアップ

Google Apps Scriptにはセットアップやインストールは必要ありません。唯一の要件はGoogleアカウントです。 Gmailアカウントは、Google Apps for Work / Education / Governmentアカウントと同様に動作します。 accounts.google.comにアクセスすると、新しいGoogleアカウントを作成できます

script.google.comにアクセスして、最初のスクリプトを開始します。また、Google Apps Scriptには、 ドキュメント、ドキュメント、スプレッドシート、フォームなどの多くのGoogle Appsのtools -> Script editor... でアクセスすることもできます。 Connect more apps.. 機能を使用Connect more apps.. と、Google Apps ScriptをGoogleドライブに直接追加することもできます。

公式のドキュメントはdevelopers.google.com/apps-script/にあります。

app-scriptsを実行するには、code.gsファイルが必要です。 code.gsファイルには、doGet(スタンドアロンスクリプト)またはonOpen関数(addonスクリプト)という名前の関数が含まれている必要があります。マニュアルのクイックスタートには例があります。

app-scriptでapiが有効になっている場合は、developers-consoleでもapiを有効にする必要があります。ただし、デベロッパーコンソールにはオンにすることはできますが、アプリスクリプトインターフェイスには表示されないAPIが含まれています。たとえば、デベロッパーコンソールでMarketplace SDKを有効にする必要があります。その後、Google PlayストアまたはGスイートのドメイン全体にアプリを公開することができます。

教育/職場/行政向けGoogleアプリの場合、ドメイン管理コンソールには、アプリスクリプトの実行を許可または禁止する設定があります。

スクリプトの実行/デバッグ

以下に示すように、ツールバーからコードを実行してみてください。

ここに画像の説明を入力

あなたのコードで、複数の関数がある場合は、それを実行する前に、実行する関数を記述する必要があります。例えば ​​:

ここに画像の説明を入力

または、キーボードからCtrl + rキーを押してコードを実行することもできます。保存しないとコードを保存してから実行します。しかし、それが機能するには、上の図のように関数を選択しておく必要があります。

また、スクリプトが外部アクティビティによって呼び出された場合でも、コードの実行後に何かを記録する場合は、view-> logsをクリックしてログを見ることができます。

スクリプトの種類

Google Appスクリプトには3種類あります。

  • スタンドアロン
  • Google Appsにバインド
  • Web Apps

スタンドアロンスクリプト

スタンドアロンスクリプトは、ドキュメント、スプレッドシート、フォームなどの Googleアプリにはバインドされていませんスタンドアロンスクリプトは、 script.google.comにアクセスするかGoogleアプリスクリプトをGoogleドライブに接続して作成できます。スタンドアロンスクリプトは、Googleアプリを個別にプログラムするために使用することも、ウェブアプリケーションとして使用することも、インストール可能なトリガーから自動的に実行するように設定することもできます。スタンドアロンスクリプトのドキュメントを参照してください。

Google Appsにバインド

コンテナバウンドスクリプトとも呼ばれるGoogle Appsにバインドされたスクリプト。スタンドアロンスクリプトとは異なり、Googleアプリ、つまりGoogleドキュメントやGoogleスプレッドなどにバインドされていますコンテナにバインドされたスクリプトは、Google Appsからtools> Script editor 選択して作成できます。ダイアログ、プロンプト、メニュー、サイドバーなどの一部の機能は、コンテナにバインドされたスクリプトによってのみ提供されます。さらに、コンテナにバインドされたスクリプトを使用してGoogleアドオンを作成します 。コンテナにバインドされたスクリプトのドキュメントを参照してください。

Web Apps

Google App Scriptは、ブラウザからアクセスできるWebアプリケーションとして使用できます。 Webアプリケーションはブラウザ上のユーザーインターフェイスを提供し、Googleアプリケーション( ドキュメント、シートなど)を利用することができます。Google Appsにバインドされたスタンドアロンスクリプトとスクリプトの両方をWebアプリケーションに変換できます。スクリプトがWebアプリケーションとして動作するには、スクリプトが次の2つの要件を満たしている必要があります。

  • doGet() またはdoPost() 関数が含まれています。
  • この関数は、HTMLサービスのHtmlOutputオブジェクトまたはContentサービスのTextOutputオブジェクトを返します。

InShort、 doGet() およびdoPost() 関数は、それぞれhttpのgetおよびpostリクエストハンドラのように機能します。

Webアプリケーションの詳細については、公式ドキュメントを参照してください。