This page looks best with JavaScript enabled

【Ruby】slack-notifierでユーザーグループにメンションを送る

 ·   ·  ☕ 1 分で読めます
✏️

ユーザーへの通知

ユーザーグループIDの取得方法

ブラウザからSlackにアクセスする。
image

ユーザーグループを選択すると、URLがこんな感じになるので、<user_group_id>の部分がIDに相当する。

https://app.slack.com/client/<workspace_id>/browse-user-groups/user_groups/<user_group_id>

ユーザーグループへのメンション方法

stevenosloan/slack-notifierでは

1
2
3
4
5
6
7
8
9
Slack::Notifier.new.notifier(
  channel: 'チャンネルID',
  username: '表示名'
  ).post(
    text: message,
    icon_emoji: icon_emoji,
    channel: channel,
    at: mentions
  )

みたいな感じ。
通常ユーザーへのメンションは、:atにユーザーIDを指定すればいいんだけど、ユーザーグループの場合はそれではうまく行かない。

https://github.com/stevenosloan/slack-notifier/blob/4bf6582663dc9e5070afe3fdc42d67c14a513354/lib/slack-notifier/payload_middleware/at.rb

1
2
3
4
5
6
7
8
def at_cmd_char at
  case at
  when :here, :channel, :everyone, :group
    "!"
  else
    "@"
  end
end

ユーザーグループへのメンションは!ユーザーグループIDになる必要がある。

IDを渡すというのはメンションと同じなので、テキスト埋め込みで頑張る。

<!subteam^your_team_id>

参考

【Slack】Webhook 経由での通知でユーザーグループにメンションを飛ばす - Qiita

Share on

END
END
@aiandrox

目次