赵韦拉/laravel-trakt

将 Laravel 与 Trakt API 集成

v1.1.0 2024-03-29 15:16 UTC

README

将 Laravel 与 Trakt API 集成

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

整个包的开发遵循官方的 Trakt API 文档

安装

您可以通过 composer 安装此包

composer require pvguerra/laravel-trakt

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="trakt-config"

这是已发布配置文件的内容

return [
    'api_url' => env('TRAKT_API_URL'),

    'client_id' => env('TRAKT_CLIENT_ID'),

    'client_secret' => env('TRAKT_CLIENT_SECRET'),

    'headers' => [
        'Content-type' => 'application/json',
        'trakt-api-version' => env('TRAKT_API_VERSION', '2'),
        'trakt-api-key' => env('TRAKT_CLIENT_ID'),
    ],

    'redirect_url' => env('TRAKT_REDIRECT_URL'),

    'staging_api_url' => env('STAGING_TRAKT_API_URL'),

    'staging_client_id' => env('STAGING_TRAKT_CLIENT_ID'),

    'staging_client_secret' => env('STAGING_TRAKT_CLIENT_SECRET'),

    'staging_headers' => [
        'Content-type' => 'application/json',
        'trakt-api-version' => env('TRAKT_API_VERSION', '2'),
        'trakt-api-key' => env('STAGING_TRAKT_CLIENT_ID'),
    ],
];

使用方法

如果您没有 Trakt 客户端 ID,您需要 创建一个新的 API 应用。然后您将获得所有需要的信息以填写配置环境变量。

电影

use Pvguerra\LaravelTrakt\TraktMovie;

$traktMovie = new TraktMovie();

return $traktMovie->get('the-batman-2022');

电视剧

use Pvguerra\LaravelTrakt\TraktShow;

$traktShow = new TraktShow();

return $traktShow->popular();

认证需求

某些端点需要认证,对于这些端点,您需要一个 API 令牌。在此阶段,我强烈建议使用 Trakt Socialite Providers,因为它扩展了 Laravel Socialite 并运行得非常好。

示例

// web.php
Route::get('auth/redirect', [OAuthController::class, 'redirect'])->name('trakt.auth');
Route::get('auth/callback', [OAuthController::class, 'callback'])->name('trakt.callback');

// authController.php
use Laravel\Socialite\Facades\Socialite;

// Redirecting the user to the OAuth provider.
public function redirect()
{
    return Socialite::driver('trakt')->redirect();
}

// Receiving the callback from the provider after authentication.
public function callback()
{
    $socialiteUser = Socialite::driver('trakt')->user();

    //...
}

然后使用认证的用户

use Pvguerra\LaravelTrakt\TraktUser;

$user = auth()->user();

$traktUser = new TraktUser($user->token);

return $traktUser->collection($user->trakt_id, 'movies');

文档

完整文档将很快提供。

更新日志

请参阅 更新日志 了解最近的变化。

贡献

请参阅 贡献指南 了解详细信息。

欢迎提交拉取请求!

致谢

许可

MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。