Lisennk / Laravel-Slack-Web-API by Lisennk

Light Laravel wrapper for Slack Web API
16,896
21
2
Package Data
Maintainer Username: Lisennk
Maintainer Contact: serewann@gmail.com (Lisennk,)
Package Create Date: 2016-08-16
Package Last Update: 2016-09-15
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-03-24 03:01:10
Package Statistics
Total Downloads: 16,896
Monthly Downloads: 109
Daily Downloads: 1
Total Stars: 21
Total Watchers: 2
Total Forks: 3
Total Open Issues: 0

:rocket: Laravel Slack API :rocket:

Latest Stable Version Total Downloads License Build Status

Lightweight Laravel 5 wrapper for the Slack Web API, including a facade and config options.

Please note that this implementation is very lightweight meaning you'll need to do some more work than usual, but in return you get a lot more flexibility. This package doesn't provide methods such as Chat::postMessage(string $message), it just provides one method: SlackApi::execute(string $method, array $parameters).

:thumbsup: Reasons to use this package for the Slack API:

  • Built-in compliance with the Slack API rate limits
  • Lightweight, flexible
  • Modern Laravel integration
  • Test coverage
  • Lots of emoji in the documentation (even cats! :cat2:)

:earth_americas: Installation

1) Require the package with Composer

composer require lisennk/laravel-slack-web-api

2) Open config/app.php and add \Lisennk\Laravel\SlackWebApi\Providers\SlackApiServiceProvider::class to the providers[] array

For example:

  // ...
  
  'providers' => [
    // ...
    // A whole bunch of providers
    // ...
    
    \Lisennk\Laravel\SlackWebApi\Providers\SlackApiServiceProvider::class
  ],
  
  // ...

3) If you want to use the Facade, add \Lisennk\Laravel\SlackWebApi\Facades\SlackApi::class to the aliases[] array in config/app.php

For example:

  // ...
  
  'aliases' => [
    // ...
    // A whole bunch of aliases
    // ...
    
    'SlackApi' => \Lisennk\Laravel\SlackWebApi\Facades\SlackApi::class
  ],
  
  // ...

4) Publish the config file

php artisan vendor:publish

5) Open config/slack.php and insert your token to make API requests

'token' => 'your-token-here'

:fork_and_knife: Usage

To make Slack API requests, you need to call the execute method of the SlackApi class and pass the Slack Web API method name and any parameters. For example:

$api->execute('method.name', [
  'parameter_one' => 'some-data',
  'parameter_two' => 'some-other-data'
  // ...
];

This will return a plain PHP array containing the response data from Slack.

####1) Basic example of usage in a Controller:

use \Lisennk\Laravel\SlackWebApi\SlackApi;
use \Lisennk\Laravel\SlackWebApi\Exceptions\SlackApiException;

// ...

public function postMessage(SlackApi $api)
{
  try {
    $response = $api->execute('users.info', [
      'user' => 'U1234567890'
    ]);
    $name = $response['user']['name'];
    // Do something amazing with data from Slack...
  } catch (SlackApiException $e) {
    return 'Error:' . $e->getMessage();
  }
}

// ...

####2) Basic usage with the Facade:

use \Lisennk\Laravel\SlackWebApi\Exceptions\SlackApiException;

// ...

public function postMessage()
{
  try {
    $response = SlackApi::execute('users.info', [
      'user' => 'U1234567890'
    ]);
    $name = $response['user']['name'];
    // Do something amazing with data from Slack...
  } catch (SlackApiException $e) {
    return 'Error:' . $e->getMessage();
  }
}

// ...

:hibiscus: Contributing

Feel free to create pull requests or issues, and report typos.

:books: Reference