はじめに
すっかりハイブリッド(在宅/出社)な働きかたが浸透してきて,在宅勤務している同僚から出社しているのかどうか聞かれることも多いと感じる今日このごろ,手動で Slack のステータスを更新するのも煩雑なので,IFTTT などで自分の位置情報をもとにステータス絵文字を更新するため,API でのステータス更新方法を久しぶりに調査しました。
Slack Application の作成
https://api.slack.com/apps からアプリケーションを作成します。
Create New App を押下,From Scratch を選択,
App Name を指定,workspace を選択,Create App を押下します。
User Token Scope の設定
Building Apps for Slack で右下の Permissions を選択,
User Token Scopes で users.profile:write を選択します。
アプリケーションのインストール
上部に戻り,OAuth & Permissions - OAuth Tokens for Your Workspace - Install to Workspace を押下,アプリケーションを Workspace にインストールします。
許可するを押下します。
User OAuth Token 生成
xoxp- で始まる User OAuth Token が生成されますので,コピーします。
curl コマンドで Slack ステータス更新
以下のように API リクエストを送信すると,
OAUTH_TOKEN=xoxp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
curl -X POST -H "Authorization: Bearer ${OAUTH_TOKEN}" \
-H "Content-type: application/json; charset=utf-8" \
-d '{"profile": {"status_emoji": ":office:"}}' \
https://slack.com/api/users.profile.set
OAUTH_TOKEN=xoxp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
curl -X POST \
-H "Content-type: application/x-www-form-urlencoded" \
-d "token=${OAUTH_TOKEN}&profile={'status_emoji': ':office:'}" \
https://slack.com/api/users.profile.set
このように :office:
絵文字が設定されました。
:workfromhome:
を status_emoji
に設定すれば,在宅絵文字に変更できます。