GoogleAppsScript

Slack用勤怠管理Botの「みやもとさん」が初期化時にエラー発生

More than 3 years have passed since last update.

Slack用勤怠管理Botの「みやもとさん」をつかってみようとインストールしてみました。

現時点(2016-04-20)ではGoogle Apps Scriptの初期化処理でエラーが発生してしまうため、スクリプトを修正するなど、ちょこっと一手間追加してインストールを行いました。

という作業メモです。

main.gsの初期化(setUp)で休日の取得で参照しているURLが403を返してるようでココでエラーが起きてしまっているようです。

ヘタレな自分はエラーのでないように修正するプログラマとしての正しい道を選ばずに、休日の設定は後回しにする方法を選びました。

つまり、以下のような修正をしました。


main.gs.diff

--- main.gs.O   2014-10-26 22:28:54.000000000 +0900

+++ main.gs 2016-04-20 17:14:07.000000000 +0900
@@ -608,15 +608,6 @@
settings.set('無視するユーザ', 'miyamoto,hubot,slackbot,incoming-webhook');
settings.setNote('無視するユーザ', '反応をしないユーザを,区切りで設定する。botは必ず指定してください。');

- // 休日を設定
- var url = 'http://www.google.com/calendar/feeds/japanese@holiday.calendar.google.com/public/full-noattendees?alt=json&max-results=1000&start-min='+DateUtils.format("Y-m-d", DateUtils.now());
- var data = JSON.parse(UrlFetchApp.fetch(url).getContentText());
- var holidays = _.map(data.feed.entry, function(e) {
- return e['gd$when'][0]['startTime'];
- });
- settings.set('休日', holidays.join(', '));
- settings.setNote('休日', '日付を,区切りで。来年までは自動設定されているので、以後は適当に更新してください');
-
// メッセージ用のシートを作成
new GSTemplate(spreadsheet);


patchをあてたmain.gsをGoogle Apps Scriptに貼り付けて初期化(setUp)を行うと完走します。

次に端折った休日の設定を手作業で追加します。

自動作成されるGoogleスプレッドシートの "_設定" シートのA4に"休日"を入力、B4に次の休日を適当に入力、C4に"日付を,区切りで。来年までは自動設定されているので、以後は適当に更新してください"を入力してください。(C4の文字列は不要かもしれないですが…)

以上の修正で「みやもとさん」を動かすことができました。

あ、Slackの管理ページのUIがREADME.mdの説明と若干異なっていますが、いい感じに読み替えてください。

Slackで勤怠管理できるのって便利便利。