https://developers.google.com/apps-script/
Google Apps Scriptっていうのは、JavaScriptでコードを書くとそれがGoogle先生のサーバサイドで何しか解釈されて動いて、Googleの各サービスのオブジェクトを簡単に操作できるぞオウイエ!ってやつです。そこまで有名なサービスではないのですが、何気にものすごい気合入ってます。
上のURLの"Default Services", "Google APIs Services"を見るとアクセスできるサービスの一覧が見られるのですが、
- GMail
- Google Calendar
- Google Docs (SpreadSheetなどを含む)
- Google Map
とかの有名かつ皆さんが大好きなサービスはもちろんのこと、
- Finance
- Charts
- Sites
- Adsense
とかなんか微妙にマイナーなやつも、
さらには
- Lock (文字通り、排他ロックのための機能)
- Cache(get/setなインタフェースで、FetchしたオブジェクトをCacheできる)
- ScriptDb(ドキュメント指向DBみたいなやつ)
みたいなお手軽サービスの割には変態じみた機能から、
- UrlFetch
- SOAP
など外部APIなどにアクセスできるモジュールまで、何でもとは言いませんがかなりの数の機能が提供されています。ちなみにformっぽいものを比較的簡単に生成できるUI Libraryもあるので、「ユーザから何らかのinputを受け取る -> Googleのサービスと外部サービスを連携しつつ何かする」というようなコードもまあまあ簡単に書けます。お作法を覚えれば。
僕がコレを触った理由は、「Google Calendarの印刷機能がクソすぎる」ということから、「Google Calendarの特定の期間のイベントをdocsのSpreadSheetに印刷に適した形式で書き出す」というスクリプトを書くためだったのですが、実際に触ってみての感想で言うと
長所
- 作法が一旦分ればけっこう簡単に目的を達成できる
短所
- とにかくデバッグがしにくい
という感じでしょうか。Logger.logで一応ログ出せるけど「Log View」みたいなポップアップを一々出さないとその出力結果が見れないとか、デバッグのしにくさは割とヤバいです。これは何とかした方がいい。
というわけで、最初に持ち上げといて何なのですが、「基本Googleのサービス使ってるけど、ここがどうしても頂けないのでちょこっと拡張したい」「お手軽に、環境を用意せずに適当なcron jobをでっちあげたい(特定の時間にscriptを起動できるので)」などの目的に適していると思います。現状。
じゃあの。