Blog

Googleスプレッドシートの更新をChatWorkへ通知してみた

弊社では様々な連絡・コミュニケーションにChatWorkを利用しており、プロジェクトごとに必要な情報がだいたいChatWorkに集約していく、くらいに使い込んでます。

とはいえ、スプレッドシートでも様々な情報をまとめることもありますが、更新状況がいまいち掴みづらい。ということでGoogleスプレッドシートの更新状態を定期的にChatWorkへ通知する仕組みを作ったので解説します。

スプレッドシートの例

サンプルなので2列しかありませんが… 今回は「A列になんらかの入力があれば、ChatWorkへ通知する」という方針でやっていきます。

監視したいスプレッドシートのスクリプトエディタを起動して、Google Apps Scriptを書いていきましょう。Excelで言うところのVisual Basic for Applicationsみたいなものですが、こっちはJavaScriptベースなので馴染みやすいかと思います。こんな感じのスクリプトになります。

こういう感じでスクリプトを書いて、デバッグして良い感じに動作したら自動実行トリガーを指定します。指定する関数をどのタイミングで自動実行するか、を指定するわけです。

そして実行するとこういう感じでChatWorkに通知が来ます。

注意したいのは

  • スプレッドシートIDやCharkwork用の定数は当然ダミーです
  • 指定範囲セルの値を取得・設定するetValue(s)とgetValue(s)はオーバーヘッドが多くて遅いので工夫する
  • セルの範囲はColumn、rowともに1から指定する
  • 時間主導型トリガーで毎正時実行は保障されない

ってところでしょうか。
最後の「毎正時実行保障」というのは、毎正時(12:00とか17:00とか)周辺に処理が殺到するらしく、毎正時前後数分間を指定してもその時間に正しく動作する保障がありません。貧者のcronとも呼ばれるGoogle Apps Scriptですがこの辺の正確さが欲しい時はおとなしくcronを動かせる環境を使いましょう。

Google Apps Scriptは外部からのGETやPOSTのリクエストを受けられないこともない(クセが強い)ので、ちょっとしたAPIの動作テストにもオススメです。

Author Profile

motoki
motoki
麺類とゲームをこよなく愛するプログラマ。会社周辺は安くて旨い店が多くて辛いです。(体重的に)
» 投稿一覧
  • Launch Cart次世代ECサイト構築システム 初期月額無料
  • LaunchMovie ECに特化した動画制作サービス

Archive

ページTOPへ