Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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で勤怠管理できるのって便利便利。

jun_ya
mewtoneという会社でゲーム向けサーバインフラの設計やサーバプログラム設計やその辺りのコンサルなどをやっていますよ。というかmewtoneという会社のえらい人ですよ。ゲーム系インフラ、サーバプログラムで悩んでいる方はいますぐにアクセスだ(どこへ…)。
http://mewtone.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away