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 だと動かなかったので、一か所だけ修正する。
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 から呼び出せる
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 とかメーラーとか、できるだけ統一して取れるようにするのがベターかなと。