ページ

2024年11月24日日曜日

slackのグループのidを確認してidでメンションする


背景

チャットツールslackでは有料プランでグループ機能を使えます。
これを使うことでグループに対してメンション(@を付けて発信)を付けてメッセージを作成するとグループに含まれる人に通知が届くので、毎度同じ人たちの名前を連ねる要件があるときに便利です。

そのグループに対してwebhookからメッセージを送ろうとしたところ、グループのidの確認方法の公式情報はapiを利用するものしか見つからなくて戸惑いました。
調べつつ試したら確認できたので、備忘録として確認方法を記事に残します。

使ったもの

slack有料プラン
slackに接続可能なPC

手順

グループを作る

slack公式のユーザーグループの作成手順を参考にしてください。
作成にはオーナーか管理者の権限が必要です。

slackアプリ未作成の場合は作成

apiの利用にアプリの作成が必要です。
権限を変更しても良いアプリを既に作っている場合はそれを利用したら良いですが、そうでない場合は新しいアプリを作ります。


アプリ一覧ページの「Create New App」ボタンで作成処理に移れます。


記事を書いている時点でのアプリ作成画面は設定値の指定を「manifest」にするか「scratch」にするか聞かれますが、後から設定変更可能なのでどちらでも良いです。

scratchだとアプリ名の入力項目が分かりやすいので、最初はscratchを選んだら良いと思います。
後ほど説明しますが、アプリの名前が日本語だとトークン作成時にエラーが発生して一手間必要になるので、英数表記の名前がお勧めです。

botの権限にusergroup:readを追加


アプリの設定ページの「OAuth & Permissions」を選びます。


OAuth & Permissionsページ中盤のScopeのBot Token Scopesに「usergroup:read」を追加します。
User Token Scopesの方ではありません。



usergroupの読み込み権限を付与できました。

tokenを作成


OAuth & PermissionsページのInstall to [ワークスペース名]ボタンを押してトークンを作成します。


このトークンを利用してグループ情報をapiで取得します。

トークン作成時のエラー対応

トークンを問題なく作成できた方は次の手順に移ってください。

[アプリ名] にはインストールするボットユーザーがありません
アプリ名が日本語だとワークスペースとの連携時に上記のエラーが発生します。


この問題はApp HomeページのYour App's Presence in SlackからApp Display NameとDefault Nameを設定すれば解決します。



設定できたらtokenの作成を再度お試しください。

tokenを利用してusergroups.listから確認

slackのusergroups.listのapi説明ページにtokenを入れると結果を表示できます。


Testerタブのtoken入力欄に作成したtokenをペーストします。


tokenの設定が正しければ、Test methodボタンを押すと結果が表示されます。


usergroupのidをメンションに利用します。
team_idではありません。

グループのidを利用してメンション

slackのmentioning groupsの説明に従い、下記の表記でグループに向けてメンションできます。
<!subteam^グループのid>

グループidが「SXXXXXXP」だったなら
<!subteam^SXXXXXXP>
と書けば、そのグループにメンションできます。

おわり

usergroupのidを把握してグループに対してメンションできました。
apiを使わず確認させてくれると嬉しいのですが、なぜそうなっていないのか疑問です。

参考

Slackでアプリケーションを作成し、OAuth Tokenを発行するまで
ユーザーグループの作成手順
アプリ一覧
usergroups.listのapi
mentioning groups

0 件のコメント :

コメントを投稿