GAS

Fusion Tables importRows を使用するサンプル

GAS

GASから、Fusion Tables を使用してると、すぐに何かの上限にひっかかるようでろくにinsertできない。 そこで、https://developers.google.com/fusiontables/docs/v1/reference/table/importRows を使用することにする。 前提条件 Fusion Tables API を使用…

今日の日付

GAS

var d = new Date(); d.setHours(0); d.setMinutes(0); d.setSeconds(0); d.setMilliseconds(0); てことを1行でやりたい衝動に駆られたので var TODAY = new Date( Math.floor( (new Date().getTime() - new Date().getTimezoneOffset() * 60 * 1000)/(24 * …

カレンダーの検索 Calendar.getEvents

GAS

次は Calendar.getEvents の結果がどのようになるかメモしておく。 事前に登録しておくイベント 2015/2/3 11:00 〜 13:00 実際に検索すると・・ getEvents(10:00, 11:00) => 0 getEvents(10:00, 12:00) => 1 getEvents(10:00, 13:00) => 1 getEvents(10.00, …

カレンダーの検索 Calendar.getEventsForDay

GAS

仕様はこちらを参照してもらうとして、実際の結果がどのようになるかメモしておく。 事前に登録しておくイベント 2015/2/2 18:00 〜 19:00:1時間のイベント 2015/2/3:終日のイベント 2015/2/3 15:00 〜 2015/2/4 10:00:日をまたぐイベント の3つ 実際に検…

ユニットテスト

GAS

GASでもテストコード書きたいよね、ということでこんなん作ってみました。 まずは、unittest.gs というファイルを作成して、以下のコードをコピペ。 function test() { try { // 先頭が「__test」から始まるメソッドを探して実行 var keys = Object.keys(thi…

FusionTablesを使用する

GAS

いくつかトラップがあるので備忘録を兼ねて手順をまとめておく Fusion Tableを作成する Googleドライブページで、作成→その他→アプリを追加 FusionTables で検索して、「接続」してFusionTablesを使えるようにする 再度Googleドライブページで、作成→その他→…

カレンダーAPI

GAS

GASでイベントを作成する方法 // admin@fuga.google.com ユーザで実行したとする // 事前に admin@fuga.google.com ユーザで hogehoge@fuga.google.com にカレンダー作成権限を付けておく var app = UiApp.getActiveApplication(); var calendar = CalendarA…

タイムアウトさせるとどうなるか実験

GAS

こんなコードで実験すると function doGet(param) { for( var i=0; ; ++i ) { } var app = HtmlService.createTemplateFromFile("index").evaluate(); app.setSandboxMode(HtmlService.SandboxMode.NATIVE); return app; } こんな画面が表示されました。一方…

google.script.run の罠3

GAS

戻り値Dateオブジェクトだとエラーになっちゃいます。たぶんこれ、内部的にはJSONでデータをやりとりしてるので、JSONであらわせないオブジェクトはダメなんだと予想。なので、formatDate 関数で文字列化する必要があります。

google.script.run の罠2

GAS

皆さん知ってましたか、GASで作ったhtml内では console.dir が使えないんです。独自のconsoleが定義されてるようです。 for( var p in console ) { console.log(p); } // debug // error // log // info // warn なので、こんな風にするとキレイに出力されま…

google.script.run の罠

GAS

いやー、これは嵌った。2時間嵌った。 何に嵌ったかと言うと、戻り値が思い通り返ってこないんです。 client側から呼ばれるAPI /* * 単に、キーが数値となるオブジェクトを返すだけ */ function api() { return {"1":"data1"}; } client側でこれを呼んでデー…

スプレッドシートの最終行について

GAS

何らかの値が入力されている最後の行はgetLastRow関数で取得できる もちろんまっさらなスプレッドシートだと 0 が返る getMaxRows関数は現在のスプレッドシートの記入できる行数を返す(まだ何も書き込まれていない行があっても) ただし、getLastRow()+1行目…

アクセスされたURLを知る

GAS

こういうのってググってもなかなか見つからないんだよねー。検索するキーワードも難しいし。 function doGet() { Logger.log("ScriptApp.getService().getUrl() = " + ScriptApp.getService().getUrl() ); // => ScriptApp.getService().getUrl() = https://…

doGetの引数

GAS

検索してもキーワード的に難しくてすぐ見つかんなかったので実験してみたまとめ。 // 単にparamをダンプするだけのスクリプトを作成 function doGet(param) { Logger.log(param); }このGASアプリに以下のようなクエリパラメータを付けてアクセス ?arg1&arg2=…