ziho-botはhubot-slack連携のSNS機能を有したライフログアプリです。
ziho-botは1時間おきに、その時間に何をしていたか(時報)を投稿するよう促してきます。 投稿した時報は、ziho-bot内にタグ付きで保存され、いつでも過去の時報を確認することができます。 また、ziho-botを使用しているユーザのうち、気になるユーザをフォローする事で、他人の時報をリアルタイムに受け取ることもできます。
ziho-botと上手につきあうことで、1日の終わりに自分が何を考えて、どう動いていたかを振り返ることができるようになります。 また、1時間ごとに時報を投稿しなくてはならないという制限がつくので、作業をより効率的に行おうという気持ちになれます。
更に自分が気になるユーザをフォローすることで、フォローしたユーザの1日の活動内容を追うことができるため、 メンバー間の開発ラインの情報共有も効率的に行えます。 また、有用な時報を投稿する人をフォローしておくことで、自然と新しい知識を得たりすることもできます。
slackのintegrationでhubotを追加します。
HUBOT_SLACK_TOKEN
を発行し、ziho-botに適当に名前をつけてあげます。
ziho-botのチャンネルはprivateでもpublicでも可能ですのでいずれかのチャンネルを作成し、 先ほど登録したziho-botをチャンネルに招待します。
このレポジトリをcloneしてください。 bin/hubotにて以下の環境変数を設定します。
変数 | 説明 |
---|---|
HUBOT_SLACK_TOKEN | 先ほど発行したトークン |
ZIHO_MAIL_SENDER | ziho-botの時報をメール送信APIのURL ※1 |
AUTO_LEAVE_HOUR | 会社の退社時間 |
ZIHO_DB_DIR | ziho-botのデータストア(sqlite)のDB格納先 |
設定後はbin/hubotよりziho-botを実行してください。
./bin/hubot
起動できているか確認するために、ziho-botを招待した部屋でhelpコマンドを実行してみてください。 ziho-botのhelpが表示されれば、セットアップが問題なく終わっています。
メール送信サーバをたててメール送信APIをたてるのは手間なので、 下記を参考にherokuのsendgridを利用するのが楽です。
https://github.com/hakamata-rui/ziho-bot-mailer
なお、ziho-botからは下記パラメータのHTTPのPOSTが行われます。
変数 | 説明 |
---|---|
sendFrom |
email address. |
sendTo |
email address comma separeted. |
subject |
mail title. |
content |
mail content. (HTML) |
hubot-slack間で時々接続が切れてしまい、以降slackへの再接続が行われないというバグがあります。 hubotio/hubot#1013
このワークアラウンドとして、hubot-slack間で接続が切れた場合に、hubotを再起動出来るよう、
bin/ziho-bot-hc.sh
をcron等で定期実行しておく事をおすすめします。
以下にziho-botの主な使い方を紹介します。
以下で紹介していないコマンドも多数あるので、ziho-botのhelp
コマンドにて確認してください。
また、help post
のように、helpの後にコマンド名をつけることで、各コマンドのマニュアルを閲覧できます。
slackのチャンネルを作成します。 CHANNELSの右にある+ボタンからPublic、Privateいずれかで作成可能です。 Channelの名前は適当に決めてください。 ziho-botを使うために、ziho-botをこのチャンネルに招待してください。
先ほど作成したチャンネルでsignup
と発言してください。
signup
と発言したユーザとチャンネルをziho-botに登録することができます。
ziho-botを辞めたい場合やchannelを別の場所に変えたい場合は、
withdraw
と発言することでチャンネルとユーザの情報を消去できます。
ただし、ziho-botをやめた場合、過去の時報は消えません。
Macではテキストエディットで半角ハイフン二つを、ダッシュに変換する機能があるのでこれを解除します。 [システム環境設定]→[キーボード]→[ユーザ辞書]より、 「スマート引用符とスマートダッシュを使用」のチェックボックスを外してください。
2通りの方法でziho-botに時報をを保存することができます。
`tag1`,`tag2`,... [message]
post [--yesterday] [--hour|-h 1~23] [--tag|-t tag1,tag2,...] (改行) [message]
時間指定をせずに現時刻の時報を投稿する場合、は方法1の簡易形式で投稿できます。
毎時50分に時報のリマインドがあるので、50分から59分59秒の間に間に時報を投稿することが望ましいのですが、 数分遅れ時刻が変わってしまい、過去の時間に遡って投稿したい場合はpostを使います。
タグは後々情報検索時に使用するため、わかりやすいタグをつけるように心がけましょう。
1時間に一回投稿する時報のタグは「ziho」とするのが一般的です。
また、showtag
より過去の投稿タグ一覧が見ることができます。
attend
と発言してください。ziho-botに対して出社した事を伝える事で、毎時50分に時報のリマインドを開始します。
また、attend
と発言していなくとも、5時から13時の間に時報を投稿した場合は出社したとみなされます。
leave
と発言してください。ziho-botに対して退社した事を伝える事で、時報のリマインドを停止します。
ただし、就業時間後に時報を投稿しない場合は退社したとみなされます。
confirm
のコマンドより、過去のziho-botへの投稿を確認できます。
自分の当日分の投稿内容を確認したい場合はオプションを指定せずにconfirm
とだけ発言します。
投稿の絞り込み条件を変更したい場合は、期間、タグ、メンバー等の指定をします。
confirm [--showid|-s] [--start (yyyy-)mm-dd] [--end (yyyy-)mm-dd] [--date|-d (yyyy-)mm-dd] [--yesterday] [--name|-n (@)name] [--tag|-t tag,tag,...] [--message|-m message]
option | 説明 |
---|---|
--showid or -s |
投稿IDの確認を行います。投稿のidは投稿の更新(update)や削除(remove)で使用します。 |
--date or -d (yyyy)-mm-dd |
確認したい日付を指定します。指定しない場合、当日を表示対象にします。 |
--tag or -t tag1,tag2,... |
検索対象のタグを指定します。タグは複数指定した場合はOR検索になります。 |
--message or -m message |
検索ワードを指定します。 |
--name or -n (@)name |
検索対象のユーザを指定します。@の有無は検索結果に影響しません。未指定の場合はコマンド実行者になります。全ユーザを検索対象にしたい場合は@allを指定します。 |
--start (yyyy)-mm-dd |
検索対象の期間の開始日を指定します。 |
--end |
検索対象の期間の終了日を指定します。 |
--yesterday (yyyy)-mm-dd |
検索対象を昨日で指定します。なお、上記検索条件はAND検索になります。 |
投稿した内容の追加と削除はslackのUI上で操作可能です。
また、confirm
の-s
オプションで確認した投稿IDを用いてupdate
やremove
からも同様に操作可能です。
relation
より、登録済みのメンバーをフォローする事ができます。
登録済みメンバーはmember -l
で確認できます。
relation [--remove|-r @name] [--add|-a @name] [--list|-l]
メンバーをフォローすることでメンバーの時報をリアルタイムに確認できるようになります。
なお、過去の投稿はフォローしていなくてもconfirm
より確認できます。
option | 説明 |
---|---|
--remove or -r |
フォロー中のユーザを削除できます。 |
--add or -a |
フォローするユーザを追加できます。 |
--list or -l |
フォロー中のユーザおよび、フォローされているユーザの一覧を確認できます。 |
mailconfig
コマンドを使って自分専用のメールテンプレートを作成します。
メールテンプレートは以下のフォーマットで作ります。
mailconfig [--sendto host@mail.to] [--sendfrom host@mail.from] (改行) subject (改行) template
テンプレートの中に時報のタグを埋め込む事が可能です。
mailコマンドを実行した際に、メール内で指定したtagを時報から抽出してメール本文にバインドします。
メールのテンプレートを登録する場合、1行目はコマンド名および、送受信先を記入します。
2行目にはメールタイトルを記入します。
なお、このタイトルにdate
のタグを記入することで、YYYY-MM-DDのフォーマットの当日の日付がdate
の箇所にバインドされます。
3行目移行はメールのテンプレートになります。
(使用例) ziho-taro@ziho.co.jpからnippo@ziho.co.jpに対して日報を送るためのテンプレートを作成する。
mailconfig --sendfrom ziho_taro@ziho.co.jp --sendto nippo@ziho.co.jp
【日報】`date` 時報太郎
template: 皆様
お疲れ様です。
本日の日報を送ります。
<b>本日の予定</b>
`task`
<b>ひとこと</b>
`report`
<b>本日の時報</b>
`ziho`
--
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
エンジニア 時報 太郎
--------------------------------------------------------------------
TEL:080-xxxx-xxxx (私用)
MAIL:ziho_taro@ziho.co.jp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
分報を既にやっている場合、ziho-botと連携すると分報がより便利に使えます。
ziho-botを通して過去の分報の投稿の確認や、メール送信機能を使用できるようになります。
ziho-botと連携する場合は分報の窓にziho-botを招待してsignup
します。
member --silent
を実行する事でそのチャンネルに対して、ziho-botのemoji reaction以外の発言が基本的に禁止されます。
silentモードではziho-botのコマンド結果を見る事が出来ないため、
コマンド実行用のチャンネルを別途作成し、ziho-botを招待してそこでもsignup
して、そのチャンネル内でziho-botのコマンドを実行してください。