SOY CMSには簡単にお問い合わせフォームを設置できる大型のプラグイン(SOY App)であるSOY Inquiryがある。

SOY Inquiryを使ってみよう


SOY Inquiryで設置したお問い合わせフォームにお問い合わせがあった際、

自動で送信されるメール以外にチャットワークの指定のチャットにも通知したいという要望がありましたので、

今回の記事でチャットワークにも通知する方法を紹介します。


responsive_pc_form

SOY InquiryのレスポンシブとHTML5対応


まずはサイトにお問い合わせフォームを設置してみる。

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を介してメッセージを投稿してみる


これで設置は終了です。

あとはお問い合わせフォームから確認のお問い合わせを送信してみて、


inq2chatwork


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