2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初めに

弊社では現在、新型コロナウイルス感染症対策のためチームごとに出社日を分けて出勤率を下げるということをやっています。
リモート勤務の日はスレッドに開始の連絡とステータスを勤務中に変更するというルールがあります。
ステータスはコントロール+シフト+Yで変更できますが、
それが面倒なので開始します。と送信したらステータスも変わるようにしたいです。

そのためには特定のチャンネルで開始しますというメッセージが送信されたことを受け取って、ステータスを変更する必要があります。

今回の範囲

今回はapiを叩いてステータスを変えてみたいと思います。

実践

vscodeの拡張機能のRest Clientを利用してステータスを変えてみようと思います。

まず、トークンが必要なのでslack appを作成します。
リンク先でcreate appをします。トークンでちょっと躓きました。

app name と ワークスペースを選択します。
すると下の画面になります。

slack権限ページ.png

Permissionsを選択すると以下の画面、

slackトークン取得ぺージ.png
slackトークン取得ぺージ2.png

User Token ScopesのAdd an OAuth Scopeを押してuser.profile.writeを選択します。

すると
トークン追加.png

上にバナーがでて成功を教えてくれます。
しかしここで保存ボタンが見つからなくてあれれ?となったのですが、Install to Workspace をクリックして許可をするとトークンが画面に現れました!
私はここでかなり探しました。

これでトークンが入手できたので実際にリクエストをしてみます。

API叩く

POST https://slack.com/api/users.profile.set
Content-Type: application/json
Authorization: Bearer xoxp-から始まるユーザートークン
{
  "profile": {
    "status_emoji": ":heart:" ,
    "status_text": "ハート"
  }
}

これだけでステータスを変更することができました。

思ったよりも簡単にステータスを変更することができました。

ドキュメントにはほかにもたくさんのスコープがあり、いろいろできそうです。
自分がやりたいことはチャンネル内の自分が送信したメッセージを取り出してそれをみてステータスを変更するということなのですが、エンタープライズのみといわれたのでこれにて終了します。
無料でも実現できそうだぞという情報や、訂正、アドバイスなどあればコメント欄で優しく教えてください。

お読みいただきありがとうございました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?