私は最近Slack APIを使用しています。私の動機は、Slack Incoming Webフックによって提供されるWebフックを呼び出すことにより、特定の時間にチャネル全体のメッセージを送信することです。
Webフックを作成し、以下のようにSlackからコードを取得しました
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hey, Its time for meeting!! <#G5CERWGRG|hep_test>", "link_names" : 1}' HOOK_URL
しかし、通常のスラックチャネルチャットのように、メッセージで@channelを送信するだけではチームの全員に通知できません。 @channelをcurlメッセージで送信すると、@ channelリンクではなく、チャットでテキストメッセージとして表示されます。
上記のcurlリクエストに示されているように、スラックチャネルID <#G5CERWGRG | hep_test>を送信してみました。しかし、投稿されたメッセージはグループ内のすべてを通知しているわけではありません。
注:チャンネル通知設定をそのままにしたい(言及についてのみ通知)
注意
@channelメッセージを送信するための正しい構文は<!channel>
。
したがって、例の正しいcurlコマンドは次のようになります。
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hey, Its time for meeting!! <!channel>", "link_names" : 1}' HOOK_URL
公式ドキュメントのリファレンスについては here も参照してください。 message builder でも試してみることができます。
Webhookのデフォルトチャネルを上書きするには、チャネル名を含む追加のプロパティchannel
も追加する必要があることに注意してください。ただし、これはカスタム統合によって作成されたWebhookでのみ機能し、Slackアプリで作成されたWebhookでは機能しません。
チャネル名を上書きする方法の例については、 ここ を参照してください。