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を介してメッセージを投稿してみる
これで設置は終了です。
あとはお問い合わせフォームから確認のお問い合わせを送信してみて、
チャットワークの方にお問い合わせ内容が通知されているかを確認しましょう。