Web雑記帳 atsu666


【a-blog cms ver2.1】フォーム通知をメール以外で通知(ChatWork)

June 26 Thu 2014 | a-blog cms

a-blog cms ver 2.1がリリースされました。

6月23日、a-blog cms5周年の誕生日にver2.1がようやくリリースできました。 ver2.1では特にユニット周りが大きくバージョンアップしてますので、良かったら触ってみてください。 あとSNSログインもオススメです。

このエントリーはリリース&5周年記念のスタッフブログリレーの記事になります。 詳しい事はこちら→7月7日まで平日毎日ブログをリレー更新

フォームの通知をメール以外は利用してみる

ver2.1の新機能として、お問い合わせフォームなどから管理者にメールが飛ぶタイミングでHookポイントを用意したので、メール以外でも好きなサービスに通知を投げる事が出来るようになりました。

フックするには/php/ACMS/User/Hook.phpをカスタマイズします。


/**
 * フォーム Submit時
 *
 * @param array $mail 自動返信メール
 * @param array $mailAdmin 管理者宛メール
 */
public function formSubmit($mail, $mailAdmin)
{

}

引数に自動返信メールと管理者宛メールの情報が入っていますので、後はごにょごにょすればいいだけです。

ChatWorkと連携してみる

Hookポイントを紹介しただけでは、面白くないのでChatWorkと連携してみたいと思います。

ChatWork APIは現在プレビュー版として限定公開されています。仕様など変わると思いますのでお気をつけ下さい。

APIトークンの取得

現在ChatWork APIを使用する為には、APIの利用申請が必要です。以下のドキュメントを参考に 利用申請をしましょう。 http://developer.chatwork.com/ja/

申請が通ると動作設定にAPI発行という新しい設定項目が増えてますので、 ここでAPIトークンを発行しておきます。



ChatWorkにフォームの通知を送ってみる

では実際にコードを書いてChatWorkにメッセージを送ってみましょう。


/**
 * フォーム Submit時
 *
 * @param array $mail 自動返信メール
 * @param array $mailAdmin 管理者宛メール
 */
public function formSubmit($mail, $mailAdmin)
{
    $apiToken 	= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // APIトークン
    $roomId 	= 'xxxxxxxx'; // ルームID URLで#!ridより後の数値
    $endpt  	= 'https://api.chatwork.com/v1/rooms/'.$roomId.'/messages'; // エンドポイント

    // データの組み立て
    $body = "[info][title]".$mailAdmin['subject']."[/title]".$mailAdmin['body']."[/info]";
    $data = array(
        'body' => $body,
    );
    $headers = array(
        'Content-Type: application/x-www-form-urlencoded',
        'Content-Length: '.strlen($body),
        'X-ChatWorkToken: '.$apiToken,
    );
    $options = array('http' => array(
        'method'    => 'POST',
        'header'    => implode("\r\n", $headers),
        'content'   => http_build_query($data),
    ));

    // 送信
    $contents = file_get_contents($endpt, false, stream_context_create($options));
}

$apiTokenには先ほど取得したAPIトークンを、$roomIDにはチャットルームのURLにある数値を設定して下さい。



こんな感じでAPIを叩くとChatWorkにメッセージを送る事ができます。

という事でフォームとChatWorkの連動について紹介してみました。 今回はChatWorkと連動してみましたが、他のサービスなどに通知を送っても面白いと思います。 よかったらお試しを。


tag : ablogcms 学習