Google spreadsheet にREST APIを追加(その2)

Google Apps Scriptのライブラリ化

概要

Google spreadsheet にREST APIを追加 その1 では Spreadsheetに埋め込んだスクリプトにすべて記述しましたが、 新しいSpreadsheetを作成する度にコードをコピーするのは大変ですし、 何らかの不具合が見つかったときに複数のファイルをメンテナンスしなければならないのは現実的ではありません。
そこで、スプレッドシートにデータを登録する部分をライブラリ化し、Spreadsheetに埋め込んだスクリプトには最低限のコードだけ記載するようにしてみます。

手順

まずはスクリプトライブラリを作成します

/**
 * GETリクエストで渡されたデータをスプレッドシートの最終行に追加する
 *
 * @param {event object} e - 要求パラメータ
 * @return {object} HTML出力
 */
function AddDataToSeet(e) {
  Logger.log("AddDataToSeet start");

  // 記録するシート(現在のスプレッドシートのアクティブなシート)
  var sheet = SpreadsheetApp.getActiveSheet();

  var dt = new Date();    // 日付
  var v0 = "";            // デフォルト値
  var v1 = "";
  var v2 = "";

  if(e.parameter.v0 !== undefined){
    v0 = e.parameter.v0;    // GETパラメータでv0が設定されていたら変数設定
  }
  if(e.parameter.v1 !== undefined){
    v1 = e.parameter.v1;    // GETパラメータでv1が設定されていたら変数設定
  }
  if(e.parameter.v2 !== undefined){
    v2 = e.parameter.v2;    // GETパラメータでv2が設定されていたら変数設定
  }

  // スプレッドシートの最終行に追加
  sheet.appendRow([dt, v0, v1, v2]);

  // HTML表示データを生成
  var output = ContentService.createTextOutput();
  output.setMimeType(ContentService.MimeType.TEXT);
  // メッセージボディ
  output.setContent("set data:" + "date=" + dt + ",v0=" + v0 + ",v1=" + v1 + ",v2=" + v2);
  return output;
}

次に操作されるspreadsheetを作成します。

新しいウィンドウでスクリプトエディタが開きます。

/**
 * GETリクエストの処理
 *
 * @param {event object} e - 要求パラメータ
 * @return {object} HTML出力
 */
function doGet(e) {
  // 処理本体
  output = MySpreadsheetLib.AddDataToSeet(e);
  return output;
}

以降、(その1 のデプロイ作業と同一です。