環境
- windows10
- DockerDesktop for Win 3.5.x
- PHP 8.x
- VsCode
- gitbash 2.32.0.1
動作イメージ
シェルスクリプトでもよく使われるcurlに相当するメソッドがPHP上に存在するので、こちらを使用してPHPプログラム上から通知を送る
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/b55821e3417e459c94c232c7d1998ecd/image.png)
設定手順
slackを開き、サイドバーのAppを選択(ない場合はその他から表示する)
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/7b7ced994b0d4a958e372dac58251585/image.png)
Incoming Webhookを選択
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/b48bf63a3114487ea72277827a3177b1/image.png)
設定を選択
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/86a1027be45c4ed8b4a08016269a87d9/image.png)
Slackに追加を選択
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/a947aac66f104405880ef9d431c6241b/image.png)
通知先のチャンネルを選択してインテグレーションの追加を選択
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/18bb40489fff4a8bbd2fcb028d6d5863/image.png)
Webhook URLが発行されるので、あとはメッセージの送り方の箇所を参考にしてメッセージを送信することが可能。
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/a2693382d5bc445cb76d32b4ce5a6e6f/image.png)
設定例(PHP)
実際は、通知クラスとそれを実行するクラスに分割して作成する等になると思いますが、例なのでそのあたりは割愛..
<?php
$url = "先ほど確認したwebhookurl"
$message = [
"channel" => "#チャンネル名",
"text" => "メッセージ内容"
];
$ch = curl_init();
$options = [
CURLOPT_URL => $url,
// 返り値を文字列で返す
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
// POST
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query([
'payload' => json_encode($message)
])
];
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
以上です。これだけでプログラムから通知を送ることができるようになります。
まとめ
いかがでしたでしょうか。本記事では、PHPのプログラムからcurlでSlackに通知を送る方法について紹介しています。簡単なプログラムを書くだけで通知を実装できますのでぜひ参考にしてみてください。