SlackのWebhookを利用して、PHPからSlackへメッセージを投稿する方法を紹介する。
今回は関数を用意し、引数へ投稿先のチャンネルやメッセージなどを指定して送信するコードを紹介する。
関数全文
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | function slack( $message = "" , $channel = "" , $username = "" , $icon = ":monkey_face:" ) { $webhook_url = '' ; // WebhookURLを指定 $data = array ( 'username' => $username , 'text' => $message , 'channel' => "#{$channel}" , 'icon_emoji' => $icon ); $options = array ( 'http' => array ( 'method' => 'POST' , 'header' => 'Content-Type: application/json' , 'content' => json_encode( $data ), ) ); $response = file_get_contents ( $webhook_url , false, stream_context_create( $options )); return $response === 'ok' ; } |
上記の関数を用意し、以下のとおり呼び出す。
1 2 | // 関数呼び出し slack( "test" , "ChannelName" , "hogehoge" ); |
任意で第4引数に投稿時に表示されるアイコンを指定することもできる。
デフォルトで関数にモンキーアイコンをしているので、第4引数を指定しないと以下のとおり猿が表示される。

Webhookの設定
Webhookを使う場合、ワークスペースの管理画面にアクセスし「Incoming Webhook」アプリを追加する必要がある。

インストールしたら、アプリの設定画面で「Webhook URL」欄を参照する。
ここで取得したURLを前述の関数内$webhook_url変数に入れる。
これで先程定義した関数を呼び出せば、PHPからSlackに投稿することができるはずだ。