Slack APIを使って自動メッセージをユーザーグループ宛に送りたいとき。

Slackのアプリ内でメンションするときと同じようにメッセージ本文中で@マークをつけて@ユーザーグループ名としても、メンションになりません

@マークの代わりに以下のように本文中に記載する必要があります。

subteamというタグのようなものでユーザーグループのIDを囲んであげる感じです。

<!subteam^{ここにユーザーグループのIDを指定する}>

たとえば、ユーザーグループのIDがAB12345でお風呂が沸いたことを伝えたいときは、こんな感じの本文になります。

お風呂が沸きました。 <!subteam^AB12345>

普段馴染みのあるユーザーグループ名は使いません。

ユーザーグループのIDの方を使うのですが、このIDは普段Slackを使うときに使われませんし、見ることもありません。

ユーザーグループのIDを確認する方法は?

オフィシャルドキュメントによると、ユーザーグループのIDを確認する方法は次の二つのようです。

  • usergroups.listのAPIを実行して結果を確認する
  • ユーザーグループのプロフィールページを表示させ、そのURLを確認する

わざわざAPIを実行するのは正直面倒くさいですよね。

となると二番目の方法がいいのですが、どこにそのURLがあるのかよくわかりませんでした。

結果、私はWeb版のSlackを立ち上げ、IDが知りたいグループ名が表示されて状態で右クリック、「検証」を選択してHTMLをこじ開けそこから半ば強引にIDを拾ってきました。

ちゃんとユーザーグループのIDが記載されているタグのところにdata属性としてユーザーグループのIDがありました!

正しいやり方ではないと思いますが、とりあえずSlack APIを使ってのユーザーグループID宛のメンションは成功しました。

グループIDはもっと簡単に確認できるようになってほしいですね。隠しておいてもあんまり意味はないでしょうに。

今回はRubyを使ってSlackのAPIを実行したのでslack-notifierというgemを使いましたが、gemを使わなくても、他の言語でもこの方法は同様に使えると思います。

この記事の環境情報

  • Ruby 3.1.2
  • slack-notifier 2.4.0
  • 2023年3月時点のSlack