Slack APIを使う
現在の勤め先ではリモートワークは試験運用?のような状態ですが、一応利用可能です。
とはいえ、オフィスに居ない中でいかにチーム開発として滞りなく活動できるか?については経験者のノウハウも魑魅魍魎といったところです。
特に無言でPCの前から居なくなると、お互い遠隔地を映像監視でもしていなければ、無応答状態の理由もわからないのは 意外とストレス要因になりそうに思います。※慣れの問題かもしれませんが・・・
というわけで、試しに業務利用中、天下のSlackステータスを自動で更新するアプリを作ってみることにしました。
まずはAPIの調査と下準備です。
Slackにアプリ登録する
- まずはSlack APIにアクセス
- 続いてBuilding Slack appsにアクセスしてアプリを作成
認証情報を生成する
ここ、意外と手こずりました。。
結論としては、ネットで出回っているAPI経由によるauthorizationではなく、ポータルメニューから実行しました。
- 先ほど作成したアプリの「Basic information」へ
- 「Add features and functionality」から必要な設定値を有効化する
- 例えば今回の場合は、
imcoming-webhook
やusers.profile:write
をセットする必要がある - 詳細はscope一覧を参照のこと
ここをONにしました
ここで機能を有効化しました
設定が完了したらAccess-Tokenが発行できます
APIを利用する
プロフィールのステータス取得URL
これで取れます。ひょっとしたらユーザ指定するのが妥当かな
Token自体がユーザ単位で発行されているから不要っぽい
https://slack.com/api/users.profile.get?token=xoxp-YOUR-TOKEN
プロフィールのステータス更新URL
これでできます。セットするステータスはjson
ですが、URLエンコーディングしてパラメータにセットするらしいです。
https://slack.com/api/users.profile.set?token=xoxp-YOUR-TOKEN&profile=%7B%22status_text%22%3A%22riding%20a%20train%22%2C%22status_emoji%22%3A%22%3Amountain_railway%3A%22%7D
before encode
{
"status_text": "riding a train",
"status_emoji": ":mountain_railway:"
}
encoded
%7B%22status_text%22%3A%22riding%20a%20train%22%2C%22status_emoji%22%3A%22%3Amountain_railway%3A%22%7D
リファレンス
あとはこっちを読むこと