Slack API (Incoming Webhooks) が簡単すぎた
【スポンサーリンク】
Slack はビジネスなどでも使われているチャットツールですが、ただチャットしているだけでは Skype や LINE でグループチャットしているのと同じようなものです。Slack が真価を発揮するのは、API を利用して簡単に外部と連携できることでしょう。ここでは Slack API の中でも Incoming Webhooks を利用して、外部から Slack へ投稿する例を説明します。
まず、以下の手順で Webhook URL を取得します。
- Slackにログインして、左側のメニューから [Menu]-[Integrations] を選択します。
- [Configured Integrations]-[Incoming WebHooks]-[Add]ボタンを押して Incoming Webhook を追加します。
- [Webhook URL] 欄に今回利用するURLが表示されています。
あとは Webhook URL に対してJSON形式のメッセージをPOSTするだけです。
<?php // [Webhook URL]欄に表示されているURL $webhook_url = 'https://hooks.slack.com/services/xxxxx'; // Slackに投稿するメッセージ $msg = array( 'username' => 'Slackテスト', 'text' => 'Hello, Slack Incoming WebHooks.' ); $msg = json_encode($msg); $msg = 'payload=' . urlencode($msg); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $webhook_url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $msg); curl_exec($ch); curl_close($ch);
Slackに次のように投稿されると成功です。
Incoming Webhooks では username
や text
の他にもアイコンを指定するプロパティなどが用意されています。詳細は公式ドキュメントを参照してください。