:rocket: Laravel Slack API :rocket:
, (*1)
Lightweight Laravel 5 wrapper for the Slack Web API, including a facade and config options., (*2)
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)., (*3)
: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:), (*4)
:earth_americas: Installation
1) Require the package with Composer, (*5)
composer require lisennk/laravel-slack-web-api
2) Open config/app.php and add \Lisennk\Laravel\SlackWebApi\Providers\SlackApiServiceProvider::class to the providers[] array, (*6)
For example:, (*7)
// ...
'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, (*8)
For example:, (*9)
// ...
'aliases' => [
// ...
// A whole bunch of aliases
// ...
'SlackApi' => \Lisennk\Laravel\SlackWebApi\Facades\SlackApi::class
],
// ...
4) Publish the config file, (*10)
php artisan vendor:publish
5) Open config/slack.php and insert your token to make API requests, (*11)
'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:, (*12)
$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., (*13)
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., (*14)
:books: Reference