Tutoriels

Comment poster un message sur Slack en PHP ?

Publié le 10 juin 2016 Temps de lecture : 4 min.

Je fais rarement des petits tutoriels sur la partie développement mais ça m’a été demandé par plusieurs d’entre vous dans mon petit sondage. J’ai décidé de vous partager aujourd’hui un petit morceau de code PHP pour envoyer un message dans un channel Slack facilement avec CURL. Découvrons le ensemble !

Pour ceux qui ne connaissent pas, Slack est un logiciel collaboratif majoritairement utilisé en entreprise qui permet d’échanger sur des projets, de discuter avec ses collègues et bien d’autres choses. Je l’utilise pour ma part quotidiennement au travail mais pas seulement. Ca peut-être une solution intéressante par exemple pour regrouper diverses notifications !

Nous allons donc voir comment poster un message dans un channel Slack en PHP.

Créer un webhook sur Slack

Dans un premier temps, vous allez devoir générer une URL liée à un channel pour pouvoir poster dans ce dernier, on appelle ça un webhook. Il faut pour cela aller dans le menu en haut à gauche (en cliquant sur le nom de votre Slack) puis dans « Apps & integrations » et « Manage » (en haut à droite). Cliquez ensuite sur « Customs integrations » et vous arriverez alors sur une page similaire à celle-ci.

incoming-webhook-slack

Il vous suffit simplement de choisir votre channel et vous obtiendrez une URL similaire à celle-ci.

https://hooks.slack.com/services/T18KK3CAH/B1FK1BBNJ/XXXXXXXX

Envoi du message via CURL en PHP

On passe maintenant à la partie qui va envoyer le message en PHP via la fonction CURL. Ce n’est vraiment pas compliqué, vous allez voir, c’est tout simple.

Dans un premier temps, on définit les paramètres que l’on va passer en paramètres puis ensuite on envoie le tout en CURL. Pour les paramètres, vous pouvez définir : le channel en question, le nom d’utilisateur qui va s’afficher, le message souhaité (qui peut prendre des variables PHP) et un petit emoji !

//On définit nos paramètres
$data = "payload=" . json_encode(array(
	"channel"       =>  "#blog",
	"username"      =>  "Antoine",
	"text"          =>  'Nouvel article sur le blog de Antoine Guilbert',
	"icon_emoji"    =>  ':gift:'
   ));
				  
//On envoie via l'URL récupérée précédemment
$ch = curl_init("https://hooks.slack.com/services/T18KK3CAH/B1FK1BBNJ/XXXXXXXX");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

C’est assez pratique si vous souhaitez être averti quand quelqu’un soumet un formulaire,  s’inscrit à une newsletter, ou encore pour remonter des erreurs PHP (merci @gdebrion). Il y a pleins d’utilisations possibles et j’ai vraiment trouvé que c’était un petit truc sympa et rapide à mettre en place !

notifications-slack

Si vous avez des questions pour la mise en place, n’hésitez pas dans les commentaires. Je l’ai testé et normalement tout est ok !

avatar-ag

Article rédigé par Antoine Guilbert

Blogueur passionné par les nouvelles technologies et la domotique.
J'adore tester des produits, voyager à travers le monde et faire des photos.

En savoir plus