mehdibo / ft-client
Client library for Forty Two Intranet API
v1.0.1
2022-09-08 10:22 UTC
Requires
- php: ^8.1
- mehdibo/oauth2-fortytwo: ^1.0
- symfony/http-client: ^6.1
Requires (Dev)
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2024-11-22 15:49:36 UTC
README
Client library to consume the 42 Intranet's API
Installation
composer require mehdibo/ft-client
Usage examples
Using the Authorization Code grant
include 'vendor/autoload.php'; $client = \Mehdibo\FortyTwo\Client\BasicClientFactory::createFromCredentials( 'CLIENT_ID', 'CLIENT_SECRET', 'REDIRECT_URI' ); $client->fetchTokenFromAuthCode($_GET['code']); $user = $client->get("/me");
Using the Client Credentials grant
include 'vendor/autoload.php'; $client = \Mehdibo\FortyTwo\Client\BasicClientFactory::createFromCredentials( 'CLIENT_ID', 'CLIENT_SECRET', 'REDIRECT_URI' ); // This is not necessary, if no token was fetched it will automatically fetch one using the Client Credentials grant $client->fetchTokenFromClientCredentials(); $cute = $client->get("/users/norminet");
Enumerating pages
This client comes with a method to easily enumerate pages of a paginated API endpoint.
include 'vendor/autoload.php'; $client = \Mehdibo\FortyTwo\Client\BasicClientFactory::createFromCredentials( 'CLIENT_ID', 'CLIENT_SECRET', 'REDIRECT_URI' ); $users = $client->enumerate("/users", [ 'sort' => '-id', ]); try { foreach ($users as $user) { echo $user['login'] . PHP_EOL; } } catch (\Mehdibo\FortyTwo\Client\Exception\EnumerationRateLimited $e) { echo "Rate limited, retry in " . $e->retryAfter . " seconds\n"; echo "Stopped at page " . $e->reachedPage . "\n"; }