392 文字
2 分
slackのステータスアイコンを自動で更新(家かオフィスかをアイコンで表示)

概要#

  • 以下のように、自分がどこにいるのかを自動的にSlackのアイコンに表示する方法を紹介します。
  • 2年前(2020年)ぐらいに設定した内容なのでちょっと古いところがあるかもです。

slack-wifi-status#

じゃあ、どうやってステータスを変えるのかと言うと、以下のようなロジックです。

  • wifiのSSIDが変更されたときのイベントをhookする
  • SSIDとアイコンの定義を予め用意しておいて、それを元にSlackのAPIを使ってアイコンを変更する。

以下のバイナリをダウンロードします。このバイナリファイルをデーモンとして稼働させてWiFi APの変更を検知してアイコンを変更することになります。

https://github.com/polidog/slack-wifi-status

設定ファイルを以下のような感じで書きます。slackのtokenの項目にはユーザトークンを入れます。

Terminal window
% cat ~/.slack-wifi-status.toml
[slack]
token = "xoxp-xxxxx-xxxxx-xxxxxxx-xxxxxxxxxxxx"
[wifi]
[[wifi.list]]
name = "office-wifi-ap"
message = "at office"
emoji = ":office:"
[[wifi.list]]
name = "office-guest-wifi-ap"
message = "at office"
emoji = ":office:"
[[wifi.list]]
name = "my-home-ssid"
message = "at home"
emoji = ":house:"
[[wifi.list]]
name = "starbucks"
message = "at starbucks"
emoji = ":comet:"

/Users/matsu/Documents/slack-wifi-status_darwin_amd64/ にバイナリを保存した前提のplistファイル

Terminal window
% cat Library/LaunchAgents/slack-wifi-status.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.slack.slack-wifi-status</string>
<key>ProgramArguments</key>
<array>
<string>/Users/matsu/Documents/slack-wifi-status_darwin_amd64/slack-wifi-status</string>
</array>
<key>StandardOutPath</key>
<string>/var/tmp/slack-wifi-status.log</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

以下のコマンドで、デーモンとして登録します。

Terminal window
% cd Library/LaunchAgents
% launchctl load slack-wifi-status.plist
% launchctl start slack-wifi-status.plist

まとめ#

  • 自分のためと言うより、一緒に働いている人に対して自分がどこにいるのかを自動的に表現できる仕組みです。
slackのステータスアイコンを自動で更新(家かオフィスかをアイコンで表示)
https://blog.teraren.com/posts/show-current-location-icon/
作者
Yuki Matsukura
公開日
2022-02-03
ライセンス
CC BY-NC-SA 4.0

コメント