株式会社オズビジョンのユッコ (@terra_yucco) です。
先に断っておきますが、今日はプログラミングは登場しません。
なぜなら、コード書いて解決しようかと思ったら、Slack に既に機能があったからです。
Slack でカスタムステータスをラクにセットする
結論
Slack の入力窓で:
/status :seven: 7F
これで絵文字 で
7F
というステータスがセットされます。
なお、設定しているステータスを解除したい場合には:
/status clear
この機能を知らなかったので当時は手で設定していましたし、今回はアプリを作ろうとしていましたが、スラッシュサジェスト使ったら 3 回目くらいで見つかりました。さすが Slack です。
ということで以下は蛇足になってしまいましたが、気になる方だけお読みください。
背景
オズビジョンは 2019-05 現在、新橋にある WeWork に入居しています。
この WeWork は全部で 9F まであるのですが、うち 3F 4F(オズビジョン) 8F 9F は一社占有フロアで他は立ち入り禁止。逆に言えば、オズビジョンメンバーは 1F 2F 4F 5F 6F 7F であれば自由に仕事をすることができます。
(wantedly から引っ張ってきた写真。ここが 4F です)
もちろん、大半の時間は 4F の執務室内や、執務室外の開けたエリアにいることが多いのですが、「気分を変えたい」「チームで集中作業したい」などの理由で別フロアに行くことが一時期よくありました。
課題
ただし Google カレンダー上に表現されている Meeting などであればともかく、タスクの時間に執務室にいないと、用がある人は困ったりします。なので当時、自分がどこにいるかは Slack のステータスで表示するようにしていました。
4F
7F
In a meeting
At a cafe
At my home
といった具合です。
これを手動で設定するのは正直面倒だったのですが、当時このコマンド知ってたらよかったなあ。
使えそうだった Slack API
こちらの POST /api/users.profile.set
は使えそうだと思っていました。
/status
で大半のことはできそうでしたが、以下のような場合はこの API を使っていろいろやってみるのもありかもしれないな、と思っています。
- Slack のアプリ自体が何らかで使えない
- Web サービスではありますが、社有デバイス以外で使ってはいけないケースなど…?
- こっちは考えにくい
- ステータスの有効期限を付けない
Your status is set! At midnight, it’ll be cleared automatically. To change that, first click your workspace name in the top left, then select Edit status.
と Slackbot が言ってくれるように /status
でセットしたステータスは At midnight に解除されるようです。なので解除したくない場合には status_expiration
で指定できる API リクエストが便利かと思います。
※なお、この midnight が JST なのか UTC なのか他のルールなのかは未確認です。
※設定側から確認すると Today となっています。
Conclusion
Slack の API を使って遊ぼうかと思いましたが、すでに公式に実装されていたというオチが付きました。ただし、細かくカスタムしたり、勤務時間に応じてステータスを変更したりということをする場合には API は使えそうです。
Slack は基本的にビジネス時間中ずっと使っているツールなので、また折を見て遊べる機能がないか見てみようと思います。