Digitalagentur für Business Software aus Kiel

So einfach ist es, eigene Dienste über die API in Slack zu integrieren!

Veröffentlicht von Henrik Braune am 25.06.2016

Henrik Braune

Slack bietet eine offene REST-API für Entwickler, die auf diesem Weg einfach Dienste und Software bestehender Infrastruktur mit dem beliebten Kommunikationstool verbinden können. Wir zeigen am einfachen Beispiel der Webhooks, wie es geht.

Slack App oder individuelle Lösungen für dein Team?

Slack bietet grundsätzlich zwei Möglichkeiten der Integration an: Slack Apps und "Custom Integrations". Slack Apps sind öffentlich und von jedem Team leicht installier- und nutzbar. Custom Integrations sind individuelle Anbindungen für ein spezifisches Team. Wir zeigen hier den Web der individuellen Einbindung.

Webhooks

"WebHook" ist der von Slack genutzte Begriff für eine Standard-Schnittstelle, die über eine eindeutige URL angesprochen werden kann. Dabei folgt die Adresse folgenden Muster: https://hooks.slack.com/services/UNIQUE_IDENTIFIER. Um einen Webhook für das Team anzulegen, kann man nach dem Login auf Slack eine neue Integration erstellen und dabei den "Channel" auswählen. In der Folge können sowohl Titel als auch Icon der Darstellung in Slack gewählt werden. Darüber hinaus wird von Slack automatisch die oben beschriebene eindeutige URL erzeugt.

Nutzung der Schnittstelle

Im Anschluss kann der Webhook angesprochen werden. Dieser erwartet einen POST-Request mit einem Body, der folgender Form folgt:

payload={"text": "Nachricht an Slack..."}

Im Beispiel nutzen wir PHP und insbesondere die Bibliothek Guzzle, um einen Request an die Slack-API zu erstellen. Guzzle kann über den Composer installiert werden:

$ php composer.phar require guzzlehttp/guzzle

Anschließend kann der Guzzle-Client genutzt werden, um eine Nachricht an Slack zu versenden:

// Create new guzzle client
$client = new Client();
$res = $client->request('POST', 'https://hooks.slack.com/services/UNIQUE_IDENTIFIER', [
  'form_params' => [
    'payload' => json_encode([
      'text' => 'Nachricht an Slack...'
    ])
  ]
]);
Ansprache der Slack API mit PHP Guzzle

Slack wird die Nachricht nun entgegennehmen, verarbeiten und in dem angegeben Channel veröffentlichen. Mehr über "Custom Integrations" mit Slack erfährt man in der offiziellen Dokumentation.

Wir haben Slack als Kanal in unseren Notification-Dienst Pitcher integriert. Der Service nimmt Fehler oder Benachrichtigungen aus Projekten entgegen und verteilt die Nachrichten in unterschiedlichen Kanäle, u.a. als Push-Notification auf iOS Geräte, E-Mail oder jetzt auch Slack. 

© 2020, Braune Digital GmbH, Niemannsweg 69, 24105 Kiel, +49 (0) 431 55 68 63 59