Skip to content

sunaoka/laravel-slack-block-kit-web-hook-driver

Repository files navigation

Laravel Slack Log Driver (Block Kit with Incoming webhooks)

Laravel Log Driver for sending Block Kit messages to incoming webhooks in Slack.

Latest License PHP Laravel Test codecov


Installation

composer require sunaoka/laravel-slack-block-kit-web-hook-driver

Setup

config/logging.php configuration file:

return [
    'channels' => [
        'slack' => [
            'driver'   => 'custom',  // Set "custom" driver
            'url'      => env('LOG_SLACK_WEBHOOK_URL'),
            'username' => env('LOG_SLACK_USERNAME', 'Laravel Log'),
            'level'    => env('LOG_LEVEL', 'info'),
            'via'      => \Sunaoka\Laravel\Log\Slack::class
        ],
    ],
];

Usage

<?php

$blocks = [
    'username' => config('logging.channels.slack.username'),
    'blocks' => [
        [
            'type' => 'section',
            'text' => [
                'type' => 'mrkdwn',
                'text' => "You have a new request:\n*<fakeLink.toEmployeeProfile.com|Fred Enriquez - New device request>*",
            ],
        ],
        [
            'type' => 'section',
            'fields' => [
                ['type' => 'mrkdwn', 'text' => "*Type:*\nComputer (laptop)"],
                ['type' => 'mrkdwn', 'text' => "*When:*\nSubmitted Aut 10"],
                ['type' => 'mrkdwn', 'text' => "*Last Update:*\nMar 10, 2015 (3 years, 5 months)"],
                ['type' => 'mrkdwn', 'text' => "*Reason:*\nAll vowel keys aren't working."],
                ['type' => 'mrkdwn', 'text' => "*Specs:*\n\"Cheetah Pro 15\" - Fast, really fast\""],
            ],
        ],
    ],
];

\Log::channel('info')->error(json_encode($blocks));