GoogleAppsScript で ChatWorkAPI を使ってみた
はじめに
ここにあるように最近、ChatWorkAPI のプレビュー版が公開された。色々いじってる。
うちの会社ではその日の予定をGoogleカレンダーで管理してるんだけど、いかんせん自分から予定を見に行こうとしないと把握出来ない。チャットなら常時開いてるし日付変わった時に ChatWork に予定をポストしときゃいいんじゃないかなーと。
GoogleAppsScript (GAS) なら GoogleApps の相性が抜群なのでそれで。
GAS で Google カレンダーを操作する
カレンダー情報を取得してから今日の予定を取得する。CalendarApp クラスを使う。扱い易くて良い。
function getCalendarSchedule () { var calendar = CalendarApp.getCalendarByName('予定')[0], events = calendar.getEventsForDay(new Date()), schedule = ''; for (var i = 0; i < events.length; i++) { schedule += events[i].getTitle() + '\n'; } return schedule; }
CalendarApp.getCalendarByName メソッドを使って名前指定でカレンダー情報を取得する。
カレンダーオブジェクトからは getEventsForDate メソッドで今日の予定を取得する。
あとは for で回して変数に仕込む。
ChatWork にポストする
取得した予定情報を ChatWorkAPI を使ってポストする。GAS には XMLHttpRequest はないので代わりにUrlFetchApp クラスというのを使う。
function postChatWork (message) { message = encodeURI(message); try { UrlFetchApp.fetch('https://api.chatwork.com/v1/rooms/{room_number}/message?body=' + body, { method: 'POST', headers: {'X-ChatWorkToken': 'chatwork_api_key'} }); } catch (e) { Logger.log(e); } }
ポストするメッセージは encodeURl メソッドでエンコードしておく。
UrlFetchApp.fetch メソッドで ChatWorkAPI を叩く。第二引数は省略可能だけど、ヘッダに API キーを仕込んだり色々するので省略することはないでしょう。
まとめ
というコードをまとめると以下のようになるんではないだろうか。
Enjoy!