😆
PHPでエレガントにSlack通知する
「php slack」で検索するとfile_get_contents()
やcURL
を使う方法が多いですね。
大変シンプルでよろしいですが、ちょっと小綺麗な通知をしようとするとJSONが登場するし、file_get_contents()
でHTTPしたくないしcURL
はセットアップに何行も書かないといけないし、など思うところがあります。
maknz/slack を使うとその辺りの悩みがなくなりますよという紹介。
さて、例えばこんな通知をするとします。
空っぽのディレクトリから始めるなら次のようにcomposerで準備します。
$ composer init
$ composer require maknz/slack
次にPHPを書きましょう。slack.php
という名前で次のような内容です。
<?php
require __DIR__ . '/vendor/autoload.php';
$webhook = 'https://hooks.slack.com/services/....(あなたのWebhookのURL)';
$client = new \Maknz\Slack\Client($webhook, [
'username' => '桃太郎',
'channel' => '#folktale',
'icon' => ':peach:',
]);
$client->attach([
'fallback' => 'お金を払うと続きが読めます。',
'text' => 'お金を払うと続きが読めます。',
'color' => 'danger',
])->send('むかしむかし あるところに *おじいさん* と *おばあさん* が山を洗濯…');
これを保存してphp slack.php
すれば通知が飛びます🎉
SlackのJSONをほぼそのまま配列で書いているだけど(Slack Aされるもともとシンプルなので)json_encode()
とか登場して欲しくない人にはおすすめです。
追記
この記事を書いた後の気付いたのですが maknz/slack は Note: this package is no longer being actively maintained. となっていました😭 メンテナンスされるフォークが出てくると良いのですが。
Discussion