SOY CMSには簡単にお問い合わせフォームを設置できる大型のプラグイン(SOY App)であるSOY Inquiryがある。
SOY Inquiryで設置したお問い合わせフォームにお問い合わせがあった際、
自動で送信されるメール以外にチャットワークの指定のチャットにも通知したいという要望がありましたので、
今回の記事でチャットワークにも通知する方法を紹介します。

まずはサイトにお問い合わせフォームを設置してみる。
SOY CMSのページにフォームを設置する - SOY Inquiryを使ってみよう
今回はdefaultというフォームを設置したということで話を進めると、
cms └── app └── webapp └── inquiry └── src └── template ├── _sample ├── default │ ├── complete.php │ ├── confirm.php │ ├── form.php │ ├── mail.admin.php │ └── style.php ├── mobile └── responsive
こんな感じでdefaultディレクトリの下にmail.admin.phpを追加する。
追加したファイルに下記のコードを記述してみる。
<?php
//取得したAPIトークンを入れる
$apiKey = "***************************";
$roomId = "*********";
// ヘッダ
header("Content-type: text/html; charset=utf-8");
//$mailBody[0]にお問い合わせ本文が入っている
$params = array(
"body" => "【saitodev.co】お問合わせがありました。\n\n" . $mailBody[0]
);
// cURLでPOST
$ch = curl_init();
// cURLのオプション設定 {roomId}の箇所には取得したルームIDを入れる
curl_setopt($ch, CURLOPT_URL, "https://api.chatwork.com/v2/rooms/" . $roomId . "/messages");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-ChatWorkToken: '. $apiKey));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 結果を文字列で返す
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // サーバー証明書の検証を行わない
curl_setopt($ch, CURLOPT_POST, true); // HTTP POSTを実行
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params, '', '&'));
$rsp = curl_exec($ch);
curl_close($ch);
サンプルコード内にある$apiKeyとroomIdの値は下記の記事を参考に取得します。
PHPでチャットワークAPIを介してメッセージを投稿してみる
これで設置は終了です。
あとはお問い合わせフォームから確認のお問い合わせを送信してみて、

チャットワークの方にお問い合わせ内容が通知されているかを確認しましょう。





