Skip to content

Instantly share code, notes, and snippets.

@codeclinic
Forked from alexstone/slack_notification.php
Created October 3, 2016 13:41
Show Gist options
  • Save codeclinic/8fe8b3baec441ba1e55a80fce0f1c0ce to your computer and use it in GitHub Desktop.
Save codeclinic/8fe8b3baec441ba1e55a80fce0f1c0ce to your computer and use it in GitHub Desktop.

Revisions

  1. Alex Stone created this gist Mar 3, 2014.
    26 changes: 26 additions & 0 deletions slack_notification.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    <?php

    // (string) $message - message to be passed to Slack
    // (string) $room - room in which to write the message, too
    // (string) $icon - You can set up custom emoji icons to use with each message
    public static function slack($message, $room = "engineering", $icon = ":longbox:") {
    $room = ($room) ? $room : "engineering";
    $data = "payload=" . json_encode(array(
    "channel" => "#{$room}",
    "text" => $message,
    "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);

    // Laravel-specific log writing method
    // Log::info("Sent to Slack: " . $message, array('context' => 'Notifications'));

    return $result;
    }