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
変数に設定されています。この変数には、適切な値を代入する必要があります。