Google Apps Script Advent Calendar最後の日です。
途中書いてなくてすいません....
書きたい内容はあるので後でちゃんと書きます。
まず、最初一人かもなーと思いながらこれを始めたのですが、多くの方が参加してくださり、非常に嬉しかったです。
本当に有難うございます。少しでもGASの情報が増えてハマる人が減るといいですね。
で今回は最後なんですが、皆さんいい話しか書いてなかったので逆に怖い話とか、対策というか心の持ちようを書いて今回のGoogle Apps Script Advent Calendarのクリスマスプレゼントとしたいと思います。
1. 突然変わる仕様
今回のAdvent Calendar中にも大きな仕様変更があり、おもいっきり影響をウケました。
GAS以外のGoogle系サービスは裏側の仕様が変わるので変わることを意識しておかないと精神的に病んでしまいます。
例えば今回大きかったのは
var dateString = Utilities.formatDate(new Date() , 'JST' , 'yyyy/MM/dd HH:mm:ss');
Logger.log(dateString);
という風に書くと「日本時間(JST GMT+9)の日付文字列」が取得できました
しかし仕様が変わりこのJST指定をしてもGMT+9の値が取得できなくなりました。
var dateString = Utilities.formatDate(new Date() , 'Asia/Tokyo' , 'yyyy/MM/dd HH:mm:ss');
Logger.log(dateString);
と書く必要があります。
これ以外にもちょこちょこと仕様変更があり、コードを直す必要があったりします。
どうすればいいの?
個人的にはstackoverflowのgoogle apps scriptタグや、
GASのissueリストを定期的に見ておくことをおすすめしています。
英語が苦手な方はGoogle Apps API Japanという日本語のGoogle Apps APIに関するメーリングリストがあるのでそちらを見てみたり、TwitterやGoogle+で#gasjaで調べてみるといいかもしれません。
大体僕は最低でも1日一回ぐらいは見ています。
何にせよ変わることは多々あるので多くの人で情報共有をするしか回避策が現状は無いということです。(白目
2. cajaの恐怖
GASの画期的なサービスの一つにHtmlServiceがあります。
HtmlServiceはその名の通りHTMLをそのまま利用してWeb画面を表示することができます。
裏側ではセキュリティの強化のためにcajaと呼ばれるサービスが記述されたhtmlやcss,javascriptを安全な形に変換し、クライアントに表示をしています。
が....
このcajaが非常に凶悪です。
まず何よりデバッグがしづらいです。
console.logやalertを利用できないことは無いのですが、chromeのconsole.logと異なり、object.toString()した状態でコンソールへ表示されます。
また、jqueryなども利用できますが一部挙動が変わることがあります。
どうすればいいの?
気合...
としか言い様がないのですがgas上でやらずに、caja playgroundというところで書いたhtmlやjsが動くかどうか試して見ることをお勧めします。
多少cajaによる変換エラーなどが見やすくなっています。
ちなみに僕は今回のAdvent CalendarをSSLで投稿したかったのでGAS自作のQiitaへ投稿してくれているEditorで書いていたのですが、
途中で使えなくなってしましました(白目
3. 日本語情報少ないよね
まだまだ日本語情報が少ないのも辛い点の一つです。
どうすればいいの?
みんなで増やして行きましょうw
あと、今回のAdvent Calendarでも投稿してくれた横山さんが本をこれから出すらしいので#gasjaなどをチェックしていてくださいw
今回の様にどこかに少しでも情報が貯まれば幸せになれる人が多いはずですから。
締め
あーだこーだ悪い話を書きましたが、来年もGASを中心に楽しくやっていけたらいいっすね。
少なくとも来年も僕は続けていこうと思っています。
多分GASはGoogleの中で最も簡単にGoogleのデータを利用でき、簡単にアプリケーションを作成できるサービスです。
まだまだGAS自体が若いのでハマりどころや不安定なところも多いですが、
温かい目で見守っていこと思っています。
...
技術系のAdvent Calendarっぽくない終わりですが
皆様お疲れ様でしたw