marcel-strahl / spotify-web-api-client

用于与Spotify API交互的PHP客户端

dev-main 2023-01-26 22:40 UTC

This package is auto-updated.

Last update: 2024-09-27 02:01:21 UTC


README

重要提示

该包目前正在开发alpha版本,仅提供简单的后端登录(客户端凭据流:https://developer.spotify.com/documentation/general/guides/authorization/client-credentials/)以及通过Track-ID获取歌曲。

下一步计划

未来,我们希望提供所有3种授权的认证,以及可以与Spotify Web应用程序的所有端点通信的客户端。

使用方法

<?php
declare(strict_types=1);

use Laminas\Diactoros\RequestFactory;
use MarcelStrahl\SpotifyWebApiClient\Client\WebApiClient;
use MarcelStrahl\SpotifyWebApiClient\Facade\SpotifyQrClientFacade;
use MarcelStrahl\SpotifyWebApiClient\Facade\WebApiAuthFacade;
use MarcelStrahl\SpotifyWebApiClient\Facade\WebApiClientFacade;
use MarcelStrahl\SpotifyWebApiClient\Model\Credentials;
use MarcelStrahl\SpotifyWebApiClient\Model\SpotifyQrClient\QrCodePreference;
use Webmozart\Assert\Assert;

require __DIR__ . '/../vendor/autoload.php';

$requestFactory = new RequestFactory();

$facade = new WebApiAuthFacade($requestFactory);

$authenticationClient = $facade->buildInstance();

$accessToken = $authenticationClient->loadAccessToken(Credentials::create([
    'clientId' => '',
    'clientSecret' => '',
]));

$apiFacade = new WebApiClientFacade($requestFactory);
$webApiClient = $apiFacade->buildInstance($accessToken);
Assert::isInstanceOf($webApiClient, WebApiClient::class);

$track = $webApiClient->getTrackById('4xkOaSrkexMciUUogZKVTS');

$qrClientFacade = new SpotifyQrClientFacade($requestFactory);
$qrClient = $qrClientFacade->buildInstance();

$qrClient->fetchQrCode(QrCodePreference::create(
    '000000',
    QrCodePreference::BAR_COLOR_WHITE,
    640,
    QrCodePreference::FORMAT_JPEG,
    $track->getUri(),
));

var_dump($track, $file);

贡献

这个库正在积极开发中。如果您遇到错误,有改进或增强的建议,或者想要实现,您可以打开一个问题

如果您想对文档或报告的错误或建议的功能进行工作,您可以通过在GitHub上创建分支并后来提交pull请求来做到这一点。如果您在任何时候需要帮助,请不要犹豫,寻求帮助。