だ。ログ。

開発とかスノボとかやきうとか。

Hangouts ChatにPHPでメッセージを投稿するのが簡単だった

結局の所、メールだとメーリングリストを作って在職中の人を入れて退職者を出してってのがすごく面倒。
誰に何を送ったか。という事が受動的で、その管理者がいなくなると誰も管理できなくなる。

EC-CUBEに限った事ではないが、管理系ツールを作る時に「メールで飛んで」と言う単語が出る。
それはそれで必要だし、メール文化から脱却出来ない所も多々ある。

もう枯れた技術ではあるが、これをslackなりgoogleなりchatworkなりにメッセージとして飛ばしてリマインダとするとメールよりも管理が簡略化出来る。
と言う事で、google chatのwebhookを使ってみようかと思う。

1. チャットルームの作成

左メニューのユーザー、チャットルーム、botをクリックし「チャットルームを作成」
f:id:rider_dice:20180726151537p:plain
これで、投稿する部屋が作成される。

2. webhookの用意。

ヘッダメニュー部分のメンバーの部分をクリックし「webhookを設定」をクリック。
f:id:rider_dice:20180726151553p:plain
名前は投稿する名前、適当でいい。
アバターのURLも有ればネタを仕込めばいいし、なければないでよい。
f:id:rider_dice:20180726151607p:plain
保存を行った後に出てくるWebhookのURLをコピって置く。
例) https://chat.googleapis.com/v1/spaces/hogehogehoge/fugafugafuga.....
f:id:rider_dice:20180726151617p:plain

3. ソースコードを書く

$url = 'コピったWebhookのURL';
$data = json_encode([
    'text' => '送りたいメッセージ'
], JSON_UNESCAPED_UNICODE);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
]);
$response = curl_exec($curl);
var_dump($response);
curl_close($curl);

んで、プログラムを実行する。
f:id:rider_dice:20180726151631p:plain
こんだけ。

多分障壁はWebhookの概念がITに詳しくないとハードルになりそうな気がする。
あとは安定稼働性はどうかって所かと。
ECだと受注が有った場合にチャットに投稿が入れば担当者がメールとかではなく、通知が来るので気付きやすくなる。
それと、本当にお客さんとの連絡はメールで社内運用に関してをチャットにするだけでもメッセージ量が大きく軽減しやすい。

とは言え24365と言う事は保証がない。
なので、落ちてる時もある。それは手運用でなんとかしろ。ってな事で社内の意識統一をすれば良い。