slackで通知する方法

Pocket

Slackで通知するのは、slackのwebhookで簡単にできてしまう。
使うには、まずはSlackでteamを作る。 https://slack.com/

Slack設定

Slackのwebhookを使うために、webhookのurlを取得する。
Webhookのurl取得方法とAPIの使い方についてはこちら
https://api.slack.com/incoming-webhooks

正常にメッセージを作れているかを確認するためのMessage builderがこちら
https://api.slack.com/docs/messages/builder
これを使って、通知したいメッセージのformatが正常かどうかを確認する。
 

PHPで実行

これをPHPで実行するサンプルコードがこちら
https://gist.github.com/alexstone/9319715
これを改修して、使い方にあうように変更する。
WEBHOOK ENDPOINTのurlは上記のwebhookで取得したものを入れる。
アイコンは、slackで使われているものを使えば良い。

function slack($message, $channel = "general", $username = "", $icon = ":monkey_face:") {
    $data = "payload=" . json_encode(array(
            "channel"       =>  "#{$channel}",
            "text"          =>  $message,
            "username"      =>  $username,
            "icon_emoji"    =>  $icon
        ));
    // You can get your webhook endpoint from your Slack settings
    $ch = curl_init("WEBHOOK ENDPOINT GOES HERE");
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

メッセージの改行は “\n”
PHP実行例

slack('通知テスト2', 'orders', '〇〇bot', ':hankey:' );


 

この記事を書いた人