/laravel-slack

A minimalist laravel package to post messages or notifications to your team's Slack.

Primary LanguagePHPMIT LicenseMIT

laravel-slack

Author Travis Quality Score Code Climate Total Downloads Packagist Version Software License SensioLabsInsight

A very tiny and lightweight integration with the Slack API for posting notifications or any kind of messages to your team's Slack account.


Requirements

  • Laravel Framework 5+

Installation

Using Composer package manager, install this package by running following command in your project root:

$ composer require jivesh/laravel-slack

Registering the Package

  • This package supports auto discovery feature introduced in Laravel v5.5, hence it is auto registered. You may skip to 'Configuration' section below.

  • If your app is on Laravel v5.4 or below, follow below steps to register:

  • In your config/app.php file, append the following code into your providers array for integrating the Service Provider for package.

/**
 * Package Service Provider
 */

'providers' => [
    // ...

    Gahlawat\Slack\SlackServiceProvider::class,
],
  • Again in your config/app.php file, copy the following code into your aliases array for a nice Laravel syntax using Facades.
/**
 * Package Alias
 */

'aliases' => [
    // ...

    'Slack' => Gahlawat\Slack\Facade\Slack::class,
],

Configuration

  • Create an incoming webhook on your Slack account for the package to use and copy the generated Webhook URL.

  • Run the following command in project root directory to generate config file for package.

$ php artisan vendor:publish
  • Now edit config/slack.php and paste value for incoming-webhook generated in the first step above.
  • You may optionally set a default username and emoji icon displayed in your Slack app from here.

Usage

  • Send any message in real time to your Slack account using this anywhere in your php code:
\Slack::send("your-message");
  • The backslash indicates global namespace scope for this function, you may import Slack namespace on top of your file by using it:
use Slack;
  • Then, you can call this Facade without a \ as:
Slack::send("your-message");
  • You can change the default name and/or display icon in your Slack app for any message by using optional second and third parameter.
  • To send this message privately to any user, use the fourth parameter as @username
  • To send this message publicly to any channel, use the fourth parameter as #channel
Slack::send("your-message" [,"display-name" [,"display-emoji"] [,"#channel" or "@username"]]);

// here [] indicates optional parameters

See this cheat sheet of available emoji icons.