web-dev-qa-db-ja.com

Slack着信Webフック-@channelメッセージを送信する

私は最近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>を送信してみました。しかし、投稿されたメッセージはグループ内のすべてを通知しているわけではありません。

注:チャンネル通知設定をそのままにしたい(言及についてのみ通知)

注意

17
balanv

@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では機能しません。

チャネル名を上書きする方法の例については、 ここ を参照してください。

38
Erik Kalkoken