chrizus/php-spotify-web-api

A PHP wrapper for Spotify's Web API.

dev-main 2023-10-05 22:18 UTC

This package is auto-updated.

Last update: 2024-04-16 14:58:23 UTC


README

Warning

This package is forked from jwilsson/spotify-web-api-php and adapted for my personal preference and use. I do not recommend using this package in your project, but use the original project jwilsson/spotify-web-api-php

Spotify Web API PHP

Packagist build

This is a PHP wrapper for Spotify's Web API. It includes the following:

  • Helper methods for all API endpoints:
    • Information about artists, albums, tracks, podcasts, audiobooks, and users.
    • List music featured by Spotify.
    • Playlist and user music library management.
    • Spotify catalog search.
    • User playback control.
  • Authorization flow helpers.
  • Automatic refreshing of access tokens.
  • Automatic retry of rate limited requests.
  • PSR-4 autoloading support.

Requirements

Installation

Install it using Composer:

composer require chrizus/phpspotify-web-api

Usage

Before using the Spotify Web API, you'll need to create an app at Spotify’s developer site.

Note: Applications created after 2021-05-27 might need to perform some extra steps.

Simple example displaying a user's profile:

require 'vendor/autoload.php';

$session = new SpotifyWebAPI\Session(
    'CLIENT_ID',
    'CLIENT_SECRET',
    'REDIRECT_URI'
);

$api = new SpotifyWebAPI\SpotifyWebAPI();

if (isset($_GET['code'])) {
    $session->requestAccessToken($_GET['code']);
    $api->setAccessToken($session->getAccessToken());

    print_r($api->me());
} else {
    $options = [
        'scope' => [
            'user-read-email',
        ],
    ];

    header('Location: ' . $session->getAuthorizeUrl($options));
    die();
}

For more instructions and examples, check out the documentation.

The Spotify Web API Console can also be of great help when trying out the API.

Contributing

Contributions are more than welcome! See CONTRIBUTING.md for more info.

License

MIT license. Please see LICENSE.md for more info.