calliostro/spotify-web-api-bundle
Composer 安装命令:
composer require calliostro/spotify-web-api-bundle
包简介
Symfony bundle for the Spotify Web API — streaming, music data & integration made easy
关键字:
README 文档
README
🚀 Easy integration of jwilsson/spotify-web-api-php into Symfony 6.4, 7 & 8!
✨ Features
- Simple integration with Symfony 6.4, 7 & 8
- Supports jwilsson/spotify-web-api-php v6 & v7
- Supports Client Credentials & Authorization Code flows
- Autowire Spotify API services
- Customizable token provider
- Easy configuration
📦 Installation
Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.
⚡ Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
composer require calliostro/spotify-web-api-bundle
🛠️ Applications that don't use Symfony Flex
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
composer require calliostro/spotify-web-api-bundle
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:
// config/bundles.php return [ // ... Calliostro\SpotifyWebApiBundle\CalliostroSpotifyWebApiBundle::class => ['all' => true], ];
Supports Symfony 6.4, 7.x and 8.x!
⚙️ Configuration
First, you must register your application at https://developer.spotify.com/dashboard/applications to obtain the client_id and client_secret.
If you want to access user-related endpoints, the user must grant access to your application. Spotify provides OAuth 2.0 for this purpose. You need to register the redirect_uri in the Spotify dashboard. For the following example, you would add https://127.0.0.1:8000/callback/ to the allowlist addresses.
For configuration, create a new config/packages/calliostro_spotify_web_api.yaml file. Here is an example:
# config/packages/calliostro_spotify_web_api.yaml calliostro_spotify_web_api: # Your Client ID client_id: '' # Required # Your Client Secret client_secret: '' # Required # Options for SpotifyWebAPI client # https://github.com/jwilsson/spotify-web-api-php/blob/main/docs/examples/setting-options.md options: auto_refresh: false auto_retry: false return_assoc: false # Address to redirect to after authentication success OR failure redirect_uri: '' # Example: 'https://127.0.0.1:8000/callback/' # Service ID of the token provider that provides the user's access token token_provider: calliostro_spotify_web_api.token_provider
🎬 Usage
This bundle provides a single service for communication with Spotify Web API, which you can autowire by using the SpotifyWebAPI and Session type-hint:
🔑 Client Credentials
This is the simpler option if no user-related endpoints are required.
// src/Controller/SomeController.php use SpotifyWebAPI\SpotifyWebAPI; // ... class SomeController { public function index(SpotifyWebAPI $api) { $search = $api->search('Thriller', 'album'); var_dump($search); // ... } }
🧑💻 Authorization Code
If you want to access a Spotify user's profile or data, you must first redirect the user to Spotify's approval page. Then you can start the session.
// src/Controller/SpotifyController.php namespace App\Controller; use SpotifyWebAPI\Session; use SpotifyWebAPI\SpotifyWebAPI; use SpotifyWebAPI\SpotifyWebAPIAuthException; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; class SpotifyController extends AbstractController { public function __construct( private SpotifyWebAPI $api, private Session $session ) {} #[Route('/', name: 'home')] public function index(): Response { return new Response(' <h1>Spotify Web API Demo</h1> <p>Welcome to the Spotify Web API Bundle demonstration!</p> <p><a href="/authorize">Click here to authorize with Spotify</a></p> ', 200, ['Content-Type' => 'text/html']); } #[Route('/callback')] public function callback(Request $request): Response { try { $this->session->requestAccessToken($request->query->getString('code')); } catch (SpotifyWebAPIAuthException) { return $this->redirectToRoute('authorize'); } $this->api->setAccessToken($this->session->getAccessToken()); $me = $this->api->me(); return new Response(' <h1>Spotify Authorization Successful!</h1> <p>Welcome, ' . htmlspecialchars($me->display_name ?? 'Spotify User') . '!</p> <pre>' . htmlspecialchars(var_export($me, true)) . '</pre> <p><a href="/">Back to Home</a></p> ', 200, ['Content-Type' => 'text/html']); } #[Route('/authorize', name: 'authorize')] public function authorize(): Response { $options = [ 'scope' => [ 'user-read-email', ], ]; return $this->redirect($this->session->getAuthorizeUrl($options)); } }
⚠️ Remember to set
redirect_uriin the configuration file and allowlist it on Spotify!
📚 Documentation
See jwilsson/spotify-web-api-php for documentation of the SpotifyWebAPI service.
See Spotify's Web API full API documentation.
⚡ Supported Symfony Versions
- Symfony 6.4 (LTS)
- Symfony 7.x
- Symfony 8.x
🤝 Contributing
Implemented a missing feature? You can request it. And creating a pull request is an even better way to get things done.
🏁 Quick Start
- Install the bundle with Composer
- Configure your Spotify credentials
- Autowire the service and start using the API!
💬 Support
For questions or help, feel free to open an issue or reach out! 😊
calliostro/spotify-web-api-bundle 适用场景与选型建议
calliostro/spotify-web-api-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.16k 次下载、GitHub Stars 达 12, 最近一次更新时间为 2021 年 04 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「symfony」 「php」 「audio」 「spotify」 「streaming」 「music」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 calliostro/spotify-web-api-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 calliostro/spotify-web-api-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 calliostro/spotify-web-api-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
The bundle for easy using json-rpc api on your project
Library for manipulating audio files (validating, transcoding, and tagging)
Bundle Symfony DaplosBundle
Provides the models and interface to include keywords audio definition in content
A PHP library to access the audio service Auphonic through its API.
Wrapper for some audio command line tools
统计信息
- 总下载量: 2.16k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 12
- 点击次数: 24
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-04-18