Slackワークスペースを作成する
通知を送信したいワークスペースがあれば、2.Incoming Webhockアプリの追加に進みます。
なければ、以下のURLを参考に新しくSlackワークスペースを作成します
Incoming Webhockアプリの追加
SlackアプリのサイドメニューのApp欄から「アプリを追加する」を選択します

「Incoming Webhock」を検索し、追加します

Webブラウザが開きます。「Slackに追加」を押下します

通知を送信したいチャンネルまたはユーザーを選択して「Incoming Webhockインテグレーションの追加」を選択します

Webhook URLが取得できるため、後ほどコピーします

フォーム送信先のPHPにSlack APIの呼び出しを記述する
対象のフォームの送信先(formタグのaction属性に記述しているPHPファイル)に、Slack APIの呼び出しを記述します。
以下の例では、formタグの中のinputタグのname属性が「content」で設定されているものの値を$contentという変数名でパラメータとして取得し、送信内容に含めています。
<?php
//(略)
//パラメータの取得
$content = htmlspecialchars($_POST["content"]);
//(略)
// Slack APIの呼び出し
$url = "ここにWebhook URL をペースト";
$message = array(
"text" => '送信内容:' . $content
);
$ch = curl_init();
$options = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query(array(
'payload' => json_encode($message)
))
);
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
//(略)
?>
コードの構成
- Webhook URL の設定: まず、
$url変数に送信先の Webhook URL を設定します。これは、Slack アプリケーションの管理画面から取得することができます。 - メッセージの作成:
$message変数に送信するメッセージの内容を定義します。textキーには、送信するテキストメッセージを指定します。 - curl の初期化:
curl_init()関数で curl リクエストを初期化します。 - curl オプションの設定:
curl_setopt_array()関数で curl リクエストの設定を行います。CURLOPT_URL: 送信先の URL を指定します。CURLOPT_RETURNTRANSFER: 返り値を文字列として取得するよう設定します。CURLOPT_SSL_VERIFYPEER: SSL 証明書の検証を無効化します。CURLOPT_POST: POST リクエストを送信するよう設定します。CURLOPT_POSTFIELDS: 送信するデータを指定します。ここでは、payloadキーに JSON エンコードされたメッセージデータを設定します。
- curl リクエストの実行:
curl_exec()関数で curl リクエストを実行します。 - curl のクローズ:
curl_close()関数で curl リクエストをクローズします。
コードの注意点
- このコードは、SSL 証明書の検証を無効化しています。本番環境では、セキュリティ上の理由から検証を有効化する必要があります。
- 送信するメッセージの内容は、
$content変数に設定されています。この変数には、適切な値を代入する必要があります。