mehdibo / ft-client
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-09-22 15:32:31 UTC
README
用于消费42 Intranet API的客户端库
安装
composer require mehdibo/ft-client
使用示例
使用授权代码授权
include 'vendor/autoload.php'; $client = \Mehdibo\FortyTwo\Client\BasicClientFactory::createFromCredentials( 'CLIENT_ID', 'CLIENT_SECRET', 'REDIRECT_URI' ); $client->fetchTokenFromAuthCode($_GET['code']); $user = $client->get("/me");
使用客户端凭证授权
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");
枚举页面
此客户端提供了一个方法,可以轻松地枚举分页API端点的页面。
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"; }