web-dev-qa-db-fra.com

Slack Incoming Web Hooks - Envoyer un message @channel

Je travaille avec Slack API récemment et mon motif est d'envoyer un message à l'échelle du canal à un certain moment en appelant un hook Web fourni par Slack Incoming Web hooks.

J'ai créé un hook web et obtenu du code de Slack comme ci-dessous

curl -X POST -H 'Content-type: application/json' --data '{"text":"Hey, Its time for meeting!! <#G5CERWGRG|hep_test>", "link_names" : 1}' HOOK_URL

Mais je ne peux pas informer tout le monde dans l'équipe en envoyant simplement @channel dans le message comme nous le faisons dans le chat de canal mou normal. Si j'envoie @channel dans le message curl, il s'affiche sous forme de message texte dans le chat, et non sous forme de lien @channel.

J'ai même essayé d'envoyer l'ID de canal mou <# G5CERWGRG | hep_test>, comme indiqué dans la demande de boucle ci-dessus. Mais le message publié n'informe pas tous les membres du groupe.

Remarque: Je souhaite conserver ma préférence de notification de chaîne telle qu'elle est (notifier uniquement les mentions)

Remarque

17
balanv

La syntaxe correcte pour envoyer des messages @channel est <!channel>.

Ainsi, la commande curl correcte pour votre exemple devrait se lire:

curl -X POST -H 'Content-type: application/json' --data '{"text":"Hey, Its time for meeting!! <!channel>", "link_names" : 1}' HOOK_URL

Voir aussi ici pour référence dans la documentation officielle. Vous pouvez également essayer ceci dans le générateur de messages .

Notez que pour remplacer le canal par défaut de votre webhook, vous devez également ajouter la propriété supplémentaire channel avec le nom du canal. Cela ne fonctionnera cependant que pour les webhooks créés via une intégration personnalisée, pas pour les webhooks créés par les applications Slack.

Voir ici pour un exemple sur la façon d'écraser le nom du canal.

38
Erik Kalkoken