CakePHPでもChatOps
ここ2週間ほど、追い込みで自宅に引きこもっていたわたなべです。
ChatOps
去年の夏ころから弊社でもSlackを使っていて、いま開発中の案件でも開発中の様々なイベントがSlackに流れてくるようになっています。いま連携してるのはこんな感じ。
- Github
- Pivotal Tracker
- Jenkins
- Trello
- Crashlytics
あとは、増井さんが作った「チャットで勤怠管理する「みやもとさん」」とかも使ってます。
アプリからもSlackへ
で、いま開発中のアプリはとあるスケジュールに従って自動的にインスタンスが立ち上がったり、落ちたり(破棄まで)する機能があります。この状態もSlackに流したいなーとおもって調べらた、PHPでSlackのIncoming WebHooksを使って連携させるライブラリが山ほどありました。
Community-built Integrations - Slack
どれか選んで使ってもよかったのですが、CakePHPのHttpSocketクラスを使えばサクッと実装できそうだったので、Pluginを作りました。
READMEにも書きましたが、bootstrap.phpなりに設定を書いた上で、以下のような感じ。
<?php App::uses('Slack', 'CakeSlack.Lib'); .... Slack::send('CakePHPからこんにちわ');
これで、以下のように簡単に連携できます。
Packagistにも登録したのでインストールは以下一発で。
$ composer require "kaz29/cake_slack":"dev-master"
簡単に連携はできますが、確かSlackにも流量制限(1秒1リクエスト?未確認です)があったはずなので大量に流れる可能性がある場合はキューに溜めるなりの工夫が必要かと思います。
ということでproduction環境に仕込んだこのプラグインが動くまで(あと30分)の待ち時間に久々の更新でした(^^;。
13:05追記
ということで無事起動して一安心(^^。