C# で Slack に投稿する | Moonmile Solutions Blog
http://www.moonmile.net/blog/archives/9117
はコマンドラインやWindowsのデスクトップアプリから投稿することを想定しているけど、じゃあ WordPress のアドインみたいなのを作って Slack に投稿するにはどうすればよいのか?ってのが、これ。
PHPでSlackにメッセージをポストするクラスのサンプル – Qiita
https://qiita.com/monhan/items/d95ad6e4e698da9e6593
Slack APIを直接扱うのは手間なので、Incoming WebHooks を使って投稿してみる。
あれこれ作ろうと思ったけど、SlackBot と SlackBotInfo をそのまま流用する。
PHP-7.2.5 だと動かなかったので、一か所だけ修正する。
1 2 3 4 5 6 7 8 9 10 11 | protected function create_options( $info ) { return array ( CURLOPT_URL => $info [ 'url' ], CURLOPT_POST => true, CURLOPT_POSTFIELDS => $info [ 'body' ], CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => true, CURLOPT_SSL_VERIFYPEER => false, // ★ ); } |
引数でメッセージを指定するにしてあるので、適当に WordPress から呼び出せる
1 2 3 4 5 6 7 8 9 10 11 12 13 | include_once __DIR__. '/SlackBot.php' ; include_once __DIR__. '/SlackBotInfo.php' ; if ( $argc < 2 ) { $message = date ( "Y/m/d H:i:s" ); } else { $message = $argv [1]; } $url = "https://hooks.slack.com/services/XXX/XXX/XXX" ; // メッセージをポスト $bot = new SlackBot(); print_r( $bot ->post_message( new SlackBotInfo( $url , $message ))); |
使い方を考える
こんな感じに、クライアントのPCからブラウザで何らかのメッセージを送る。フォームを使ってサーバーから保守PCへ送るとか、メールに切り替えるとかでもいいのだけど、もっとシンプルに Slack の通知だけを送ってしまう。単純なヘルプボタンみたいなものかな。例えば、なんか障害が起きたとか、定型的なレポートとかをメール経由ではなくて slack 経由にしてしまう感じ。
保守 PC のほうは、何で受けてもよいのだけど、LINE API とか Facebook とかメーラーとか、できるだけ統一して取れるようにするのがベターかなと。