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! 🐈)
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'
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();
}
}
// ...
Feel free to create pull requests or issues, and report typos.
- To use Slack Events API, we recommend the Laravel Slack Events API package