m9snikfeed / php-shikimori
shikimori.one 的 API 实现
dev-main
2022-02-23 12:40 UTC
Requires
- php: >=8.1
- ext-curl: *
- ext-json: *
- symfony/http-client: ^6.0
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-23 18:38:27 UTC
README
Shikimori API 交互的 PHP 库,包括 OAuth 2.0 授权和 API v1-v2 方法。完整的 Shikimori API 功能文档可以在这里找到。
1. 前提条件
- PHP 8.1 或更高版本
2. 安装
通过 composer 需求库
composer require m9snikfeed/php-shikimori
3. 初始化
使用以下代码创建 ShikimoriApiClient 对象
$apiClient = new ShikimoriApiClient('YukiDub.Fun');
var_dump($apiClient->anime()->get(1)->getImage()->getX48());
ShikimoriApiClient 构造函数将用户代理作为第一个参数。
4. 授权
$clientId = 'IWJ-6QnQi5so_dtyHswoTOwQ07YRev3UAnc7H-OVRhM';
$clientSecret = 'EwgBSXrBDChK7-YsqE8fQz86Ws_pwG3lAhUiyXXffqs';
$authCodeRedirect = 'https:///auth/shikimori/callback';
$shikiOAuth = new ShikimoriOAuth('YukiDub.Fun');
///getAuthorizationToken method will return authorization URL. After passing through it and upon successful authorization, AUTH_CODE will be issued.
echo $shikiOAuth->setScopes(Scopes::user_rates, Scopes::comments)->getAuthorizationUrl($clientId, $authCodeRedirect));
$accessToken = $shikiOAuth->getAccessAndRefreshToken($authCodeRedirect, $clientSecret, $clientId, 'AUTH_CODE');
$apiClient = new ShikimoriApiClient('YukiDub.Fun');
$apiClient->setAccessToken('ACCESS_TOKEN');
var_dump($apiClient->users()->whoami($accessToken['access_token']));