A PHP client for consuming the Trello API.
Via Composer
$ composer require stevenmaguire/trello-php
This guide will help you navigate configuring the client, authenticating your users and retrieving an access token, and accessing the api on their behalf.
Full client documentation is available in the API Guide.
Make sure you have secured your Trello API keys before going further. There is a handy guide for that.
This project includes a basic example. You can run this example to test your application details. Open the example file and include your key
and secret
, run php -S localhost:8000 -t example
, visit http://localhost:8000
in your favorite browser.
The Trello client needs a few configuration settings to operate successfully.
Setting | Description |
---|---|
key |
Required, the application key associated with your application. |
token |
Required when using the package to make authenticated API requests on behalf of a user. |
domain |
Optional, default is https://trello.com . |
version |
Optional, default is 1 . |
secret |
Required when using package to help get access tokens, the application secret associated with your application. |
name |
Optional. This will appear on the user facing approval screen when using package to help get access tokens. |
callbackUrl |
Required when using package to help get access tokens. |
expiration |
Required when using package to help get access tokens. |
scope |
Required when using package to help get access tokens. |
proxy |
Optional setting to declare a host to use for proxy; Read more on the Guzzle Docs. |
$client = new Stevenmaguire\Services\Trello\Client(array(
'callbackUrl' => 'http://your.domain/oauth-callback-url',
'domain' => 'https://trello.com',
'expiration' => '3days',
'key' => 'my-application-key',
'name' => 'My sweet trello enabled app',
'scope' => 'read,write',
'secret' => 'my-application-secret',
'token' => 'abcdefghijklmnopqrstuvwxyz',
'version' => '1',
'proxy' => 'tcp://localhost:8125',
));
$client = new Stevenmaguire\Services\Trello\Client(array(
'key' => 'my-application-key',
'name' => 'My sweet trello enabled app',
));
$config = array(
'callbackUrl' => 'http://your.domain/oauth-callback-url',
'expiration' => '3days',
'scope' => 'read,write',
);
$client->addConfig($config);
$client = new Stevenmaguire\Services\Trello\Client(array(
'key' => 'my-application-key',
'name' => 'My sweet trello enabled app',
));
$client->addConfig('token', 'abcdefghijklmnopqrstuvwxyz');
The Trello client is capable of assisting you in walking your users through the OAuth authorization process and providing your application with access token credentials.
This package utilizes The League's OAuth1 Trello Client to provide this assistance.
$client = new Stevenmaguire\Services\Trello\Client(array(
'key' => 'my-application-key',
'secret' => 'my-application-secret',
));
$config = array(
'name' => 'My sweet trello enabled app',
'callbackUrl' => 'http://your.domain/oauth-callback-url',
'expiration' => '3days',
'scope' => 'read,write',
);
$client->addConfig($config);
$authorizationUrl = $client->getAuthorizationUrl();
header('Location: ' . $authorizationUrl);
After the user approves or denies access to your application, they will be redirected to the callback url you provided. If the user approves access, the url will include oauth_token
and oauth_verifier
in query string parameters.
$token = $_GET['oauth_token'];
$verifier = $_GET['oauth_verifier'];
$credentials = $client->getAccessToken($token, $verifier);
$accessToken = $credentials->getIdentifier();
If successful, $credentials
with be an instance of TokenCredentials. You can store the identifier within and use to authenticate requests on behalf of that user.
$client->addConfig('token', $accessToken);
$user = $client->getCurrentUser();
Get inventory of all entities that belong to your user
$client = new Stevenmaguire\Services\Trello\Client(array(
'key' => 'my-application-key',
'token' => 'your-users-access-token',
));
$boards = $client->getCurrentUserBoards();
$cards = $client->getCurrentUserCards();
$organizations = $client->getCurrentUserOrganizations();
Most of the methods available in the API Guide require entity ids to conduct business.
When handling exceptions that result during requests to Trello using the client, a Stevenmaguire\Services\Trello\Exceptions\Exception
will be thrown. This exception will include information from the underlying Http request/response issues, including the response body from Trello.
try {
$board = $client->getBoard($boardId);
} catch (Stevenmaguire\Services\Trello\Exceptions\Exception $e) {
$code = $e->getCode(); // Http status code from response
$reason = $e->getMessage(); // Http status reason phrase
$error = $e->getPrevious(); // GuzzleHttp\Exception\RequestException from http client
$body = $e->getResponseBody(); // stdClass response body from http client
}
$ ./vendor/bin/phpunit
Please see CONTRIBUTING for details. You can see the current PROGRESS.
The MIT License (MIT). Please see License File for more information.