lisennk/laravel-slack-web-api

Light Laravel wrapper for Slack Web API

0.1.1 2016-08-16 22:19 UTC

This package is not auto-updated.

Last update: 2024-11-02 13:47:46 UTC


README

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).

👍 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! 🐈)

🌎 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'

🍴 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();
  }
}

// ...

🌺 Contributing

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

📚 Reference