m9snikfeed/php-shikimori

shikimori.one 的 API 实现

dev-main 2022-02-23 12:40 UTC

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']));