Slackを運用していると、 @channel, @here などとは別に、特定のメンバーだけをまとめたusergroupsを作成することがあるかと思います。
APIから @hogehoge
のようにメンション付きでメッセージを送信する場合、 <@hogehoge>
のようにして送っても正しく送信されなかったので、
備忘録として残しておきます。
ユーザ宛てにメンションを送る場合
<@username>
ではなく <@userID>
を使う必要があります。
ユーザIDを調べる方法は
https://api.slack.com/methods/users.list/test
↑からWEBテスターを実行して調べてください。
ユーザグループ宛てにメンションを送る場合
<!subteam^取得したID|グループ名>
を使う必要があります。
なんだこれ・・・。
ユーザと同様に
https://api.slack.com/methods/usergroups.list/test
↑のWEBテスターから実行して調べてください。
IDが取得したID
グループ名がhandle
(を私は使いました)
これでメンションが送信出来るかと思います。
curl -XPOST -d "token=TOKEN" -d 'channel=channellname' -d "text=<@userID> <!subteam^取得したID|グループ名> こんにちは" -d 'as_user=true' 'https://slack.com/api/chat.postMessage' >&/dev/null