Google Apps の Google Developers Expert (GDE) である Bruce McPherson は、「Execution API は、Microsoft Office (と VBA) から Apps (と Apps Script) へ「徐々に移行」することを実現する優れたツールです。Office の成熟したワークフローには、VBA で構成されている多くのプロセスが含まれており、さまざまな場所のさまざまな形式のデータを扱う必要があります。特に、多くの要素が移動する自動化されたプロセスでは、1 つの手順でワークロード全体を動かすことが難しくなることもあります。この新しい機能を使用すると、管理可能な規模でデータとプロセスの移行が行えます」と述べています。Execution API を使った移行コードのサンプルについては、 ここを参照してください。

Google Apps Script Execution API は今すぐ使用できます。Google Apps Script Execution API の使用を開始する際は、 デベロッパー向けドキュメントと クイックスタートを参照してください。Execution API を使ったアプリが完成したら、ご紹介いただければ幸いです。


Posted by Eiji Kitamura - Developer Relations Team

実装

ループ内では、メールが送信されるごとに(つまり、メソッド GmailApp.sendEmail() を使用するごとに)、Apps Script UrlFetch サービスを使用し、Firebase にその REST API を使用して書き込みます。Firebase の機能により、これを簡単そして安全に行うことができ、またOAuth 認証フローを使わずFirebase app secret のみで実現することができます。以下は一例です。
function addNewUserToFirebase() {
  var dbUrl = "https://test-apps-script.firebaseio.com";
  var secret = PropertiesService.getScriptProperties().getProperty("fb-secret");
  var path = "/users/";
  var userData = {
    romainvialard:{
      firstName:"Romain", 
      lastName:"Vialard",
      registrationDate: new Date()
    }
  };
  var params = {
    method: "PUT",
    payload : JSON.stringify(userData)
  }
   UrlFetchApp.fetch(dbUrl + path + ".json?auth=" + secret, params);
}
クライアント側では、改善された Apps Script HtmlService により、正式な JS クライアント ライブラリを使用して Firebase に接続し、以前に格納されたデータを取得できるようになりました。特に、このライブラリの on() メソッドは、データベース内の特定の場所におけるデータ変更の監視に使用できます。したがって、サーバー側で新しいタスクが完了する(つまり新しいメールが送信される)ごとに、Firebase に通知し、それに応じて UI が自動的にアップデートされます。
var fb = new Firebase("https://test-apps-script.firebaseio.com");
var ref = fb.child('users/' + UID + '/nbOfEmailsSent');
ref.on("value", function(data) {
  if (data.val()) {
    document.getElementById("nbOfEmailsSent").innerHTML = data.val();
  }
});

アドオンでのその他の Firebase の使用法

上記の例に加え、Google Apps Script アドオンで Firebase を便利に使用する方法は他にもあります。
  • Yet Another Mail Merge は、支払いプランを提案することもでき、その場合顧客リストの保存を必要とします。Firebase はこういったケースにもまさにうってつけです。誰かがプランを購入するごとに、支払いツールが Apps Script ウェブ アプリを呼び出し、これが Firebase に支払いの詳細を書き込みます。したがって、購入の直後にユーザーが追加機能を開くと、サーバー側の機能が Firebase を呼び出し、該当プレミアム機能がこのユーザーに対して有効化されていることを確認できます。
  • もうひとつ便利な使用方法として、メール マージの最終段階で、Firebase を使用して開かれたメールのリアルタイム レポートをスプレッドシートのサイドバーに提供できます。
以上は、Apps Script とFirebase を使用して実現可能な機能のほんの数例に過ぎません。お気軽に自分で試したり、Yet Another Mail Merge をインストールして、実際の例を確認してください。また、FirebaseApp と呼ばれる公開 Apps Script ライブラリがあり、これらは Firebase の使用を開始する際に役立ちます。その他の標準 Apps Script ライブラリと同様に使用してください。
たとえば、次の特定のパラメータを使用して、Firebase からデータを簡単にフェッチできます。
function getFrenchContacts() {
  var firebaseUrl = "https://script-examples.firebaseio.com/";
  var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
  var queryParameters = {orderBy:"country", equalTo: "France"};
  var data = base.getData("", queryParameters);
  for(var i in data) {
    Logger.log(data[i].firstName + ' ' + data[i].lastName
        + ' - ' + data[i].country);
  }
}
Google Apps Script を使用して独自のアドオンを構築してみてください。さらに詳しく知りたい場合は、ドキュメント(developers.google.com/apps-script)を参照、またQuickstart プロジェクトをお試しください。皆さまのアドオンのお役に立てれば幸いです。


Posted by Ian Lewis - Developer Relations Team


Google Apps API Japan の API Expert には、中村敦さん(@atusi Google Wave API の API Expert から移行)と小川信一さん(@shin1ogawa Google App Engine の API Expert と兼務)にご就任頂きます。

本コミュニティへの参加をご希望の方は、下記から groups にお申し込みください。

http://groups.google.com/group/google-apps-api-japan/


なお、先週開催した第一回 GTUG Girls Meetup では、Google Apps Script (GAS) のハンズオンを行い、中村さん・小川さんはチューターとして活躍していただきました。参加者からは「GAS は初めて使ったけど、面白かった」「知らなかったけど使ってみると便利」との意見が寄せられました。ご参考まで、GTUG Girls で使われた資料を下記にも掲載します。


ぜひお試しください。