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の項目にはユーザトークンを入れます。
% 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ファイル
% 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>以下のコマンドで、デーモンとして登録します。
% 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/