SlackのWebhookを利用して、PHPからSlackへメッセージを投稿する方法を紹介する。
今回は関数を用意し、引数へ投稿先のチャンネルやメッセージなどを指定して送信するコードを紹介する。
関数全文
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';
}
上記の関数を用意し、以下のとおり呼び出す。
// 関数呼び出し
slack("test", "ChannelName", "hogehoge");
任意で第4引数に投稿時に表示されるアイコンを指定することもできる。
デフォルトで関数にモンキーアイコンをしているので、第4引数を指定しないと以下のとおり猿が表示される。
Webhookの設定
Webhookを使う場合、ワークスペースの管理画面にアクセスし「Incoming Webhook」アプリを追加する必要がある。
インストールしたら、アプリの設定画面で「Webhook URL」欄を参照する。
ここで取得したURLを前述の関数内$webhook_url変数に入れる。
これで先程定義した関数を呼び出せば、PHPからSlackに投稿することができるはずだ。