Posted at

Cybozu Garoon の予定を Slack で通知する


ことの始まり

image.png

取締役会長との 1on1 を Youtube みてたらすっぽかしてしまったため、再発防止策として Garoon の予定を Slack に通知してくれる bot を即席で作りました。

見てた Youtube は GrooveX の Lovot というロボットの発表ライブです。かわいい。


  • ガルーン Rest API をいじる

  • Slack に簡単な通知を送る

の勉強にもなるので遊びたい人はどうぞ。


注意事項


  • 雑実装なので、1分に1回 Garoon の API を叩きます。(結果のキャッシュなどしていません)

  • うまく動かず会議に遅刻しても責任はとりません!


リポジトリ

https://github.com/halhorn/cybozu_slack_bot


インストール

git clone git@github.com:halhorn/cybozu_slack_bot.git

cd cybozu_slack_bot
cp -fr secret.sample secret
# 編集内容は後で説明
emacs secret/cybozu.yml
emacs secret/slack.yml


cybozu.yml

sub_domain: hogehoge

id: harumitsu.nobuta

sub_domain は自社の Garoon の https://*****.cybozu.com/ の **** 部分です。

ID は書き換えてください。

パスワードは後ほど環境変数で指定します。


slack.yml

Webhook を作ってください。作ったら Webhook URL をコピーしましょう。

webhook: https://hooks.slack.com/services/***********

user_name: hal_nobuta
channel: hal_work


  • webhook のところにコピーした URL を貼り付けます。

  • user_name は slack の自分の名前から @ を除いたもの

  • channel は通知したいチャンネル名から # を除いたもの


実行

# スペースから始まるコマンドは history に残さないようにする

setopt hist_ignore_space
export CYBOZU_PASS=my_cybozu_password

# とりあえず動かして様子を見る場合 python -m bot.run
nohup python -m bot.run &

export CYBOZU_PASS=''