dev-master
9999999-devTrello OAuth 1.0 Client Provider for The PHP League OAuth1-Client
MIT
The Requires
- php >=5.5.0
- league/oauth1-client dev-develop
The Development Requires
authorization oauth client oauth1 authorisation trello
Wallogit.com
2017 © Pedro Peláez
Trello OAuth 1.0 Client Provider for The PHP League OAuth1-Client
This package provides Trello OAuth 1.0 support for the PHP League's OAuth 1.0 Client., (*2)
To install, use composer:, (*3)
composer require league/oauth1-trello
Usage is the same as The League's OAuth client, using \League\OAuth1\Client\Server\Trello as the server., (*4)
// Create a server instance.
$server = new \League\OAuth1\Client\Server\Trello([
'identifier' => 'your-identifier',
'secret' => 'your-secret',
'callbackUri' => 'http://your-callback-uri/',
// The following can be used to set defaults for the server
'scope' => 'read',
'expiration' => '1day',
'name' => 'Trello App'
]);
// Obtain Temporary Credentials and User Authorization
if (!isset($_GET['oauth_token'], $_GET['oauth_verifier'])) {
// First part of OAuth 1.0 authentication is to
// obtain Temporary Credentials.
$temporaryCredentials = $server->getTemporaryCredentials();
// Store credentials in the session, we'll need them later
$_SESSION['temporary_credentials'] = serialize($temporaryCredentials);
session_write_close();
// Second part of OAuth 1.0 authentication is to obtain User Authorization
// by redirecting the resource owner to the login screen on the server.
// Create an authorization url.
$authorizationUrl = $server->getAuthorizationUrl($temporaryCredentials);
// Redirect the user to the authorization URL. The user will be redirected
// to the familiar login screen on the server, where they will login to
// their account and authorize your app to access their data.
header('Location: ' . $authorizationUrl);
exit;
// Obtain Token Credentials
} else {
try {
// Retrieve the temporary credentials we saved before.
$temporaryCredentials = unserialize($_SESSION['temporary_credentials']);
// We will now obtain Token Credentials from the server.
$tokenCredentials = $server->getTokenCredentials(
$temporaryCredentials,
$_GET['oauth_token'],
$_GET['oauth_verifier']
);
// We have token credentials, which we may use in authenticated
// requests against the service provider's API.
echo $tokenCredentials->getIdentifier() . "\n";
echo $tokenCredentials->getSecret() . "\n";
// Using the access token, we may look up details about the
// resource owner.
$resourceOwner = $server->getResourceOwner($tokenCredentials);
var_export($resourceOwner->toArray());
// The server provides a way to get an authenticated API request for
// the service, using the access token; it returns an object conforming
// to Psr\Http\Message\RequestInterface.
$request = $server->getAuthenticatedRequest(
'GET',
'http://your.service/endpoint',
$tokenCredentials
);
} catch (\League\OAuth1\Client\Exceptions\Exception $e) {
// Failed to get the token credentials or user details.
exit($e->getMessage());
}
}
In order to complete the authorization flow with your user, you will need to provide three additional pieces of information., (*5)
| name | description |
|---|---|
scope |
Scope informs the Trello service about which permissions you are requesting on behalf of your user. read or read,write
|
expiration |
Expiration informs the Trello service about how long you are requesting this permissions. 1day, 3days, never
|
name |
Name informs the Trello service about the name of your application. This will be displayed to your users during authorization. |
You may configure your server to include this information when creating the server., (*6)
// Create a server instance.
$server = new \League\OAuth1\Client\Server\Trello([
'identifier' => 'your-identifier',
'secret' => 'your-secret',
'callbackUri' => 'http://your-callback-uri/',
'scope' => 'read',
'expiration' => '1day',
'name' => 'Trello App'
]);
You may also provide this information when creating your authorization url., (*7)
// Create a server instance.
$server = new \League\OAuth1\Client\Server\Trello([
'identifier' => 'your-identifier',
'secret' => 'your-secret',
'callbackUri' => 'http://your-callback-uri/',
]);
$temporaryCredentials = $server->getTemporaryCredentials();
$options = [
'scope' => 'read',
'expiration' => '1day',
'name' => 'Trello App'
];
$authorizationUrl = $server->getAuthorizationUrl($temporaryCredentials, $options);
Configuration provided when creating your authorization url with take precedence over default configuration., (*8)
You may use the server to create authenticated requests for one-off or trivial needs. If your needs are more robust, trello-php is recommended., (*9)
$server = new \League\OAuth1\Client\Server\Trello([
'identifier' => 'your-identifier',
'secret' => 'your-secret',
'callbackUri' => 'http://your-callback-uri/',
]);
$token = 'your-resource-owner-token';
$secret = 'your-resource-owner-secret';
$tokenCredentials = new \League\OAuth1\Client\Credentials\TokenCredentials($token, $secret);
$request = $server->getAuthenticatedRequest(
'get',
'https://api.trello.com/1/members/me/boards',
$tokenCredentials
);
$client = new \GuzzleHttp\Client();
$response = $client->send($request);
This project contains some example code within the example directory at the root of this project., (*10)
First, open the example/index.php file and update the server configuration with your Trello App Identifier and Secret., (*11)
Then run the code in your browser. Using the built-in server provided by PHP may be the fastest options. From the command line, and at the root of the project running the following command., (*12)
php -S localhost:9000 -t example
The built-in web server should begin running and when you browse to http://localhost:9000 in your favorite browser, you can begin testing your configuration., (*13)
``` bash $ ./vendor/bin/phpunit, (*14)
``` bash $ ./vendor/bin/phpcs src --standard=psr2 -sp
Please see CONTRIBUTING for details., (*15)
The MIT License (MIT). Please see License File for more information., (*16)
Trello OAuth 1.0 Client Provider for The PHP League OAuth1-Client
MIT
authorization oauth client oauth1 authorisation trello