mehdibo/ft-client

Forty Two Intranet API 的客户端库

v1.0.1 2022-09-08 10:22 UTC

This package is auto-updated.

Last update: 2024-09-22 15:32:31 UTC


README

Latest Stable Version Latest Unstable Version License Total Downloads PHP Version Require Unit tests

用于消费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";
}