Skip to content
#️⃣ PHP Slack Client based on the official OpenAPI specification
PHP
Branch: master
Clone or download
damienalexandre Merge pull request #44 from jolicode/updateJane
Re-generate the API Client with Jane 4.4
Latest commit df228e1 Aug 7, 2019

README.md

A PHP client for Slack's API

There is a bunch of PHP clients for Slack. But some are not up to date or miss features, some only cover a small part of the API and most are simply no longer maintained.

This SDK is generated automatically with JanePHP from the official Slack API specs.

Installation

This library is built atop of PHP-HTTP and PSR-7. So you will need to install some implementations for those interfaces. If no PHP-HTTP adapter or PSR-7 message factory is available yet in your project or you don't care which one to use, just install some default:

composer require php-http/curl-client:"^1.7" guzzlehttp/psr7

You can now install the Slack client:

composer require jolicode/slack-php-api

Usage

First, you need to retrieve a token - like an OAuth AccessToken or a legacy token. Checkout Slack's documentation about all differents kind of tokens.

Then, use the factory that is provided to create the client:

// $client contains all the methods to interact with the API
$client = JoliCode\Slack\ClientFactory::create($yourToken);

$user = $client->usersInfo(['user' => 'U123AZER'])->getUser();

dump($user);

Sample user object

Want more example or documentation? See the documentation.

Troubleshoots

Got some problems using this library? Need a missing feature? Do not hesitate to open an issue and share it with us.

Missing data in the DTO?

The Slack specification is not up to date and miss some critical parts. We do build a better one on top of the official but can't be perfect.

What's good is that we use \ArrayObject as base classes so if the API return data we don't have in the mapping, you can still access it via Array like syntax:

$results = $client->searchMessages([
    'query' => 'test'
]);

var_dump($results->getOk()); // Mapped
var_dump($results['messages']); // Not mapped but still readable

Feel free to open issues for those missing fields.

Further documentation

You can see the current and past versions using one of the following:

And finally some meta documentation:

License

This library is licensed under the MIT License - see the LICENSE file for details.

You can’t perform that action at this time.