ft-client
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";
}