Skip to content
Snippets Groups Projects
Select Git revision
  • ae124c9c1ae237aa815b1a892808fc35def26d73
  • master default protected
  • 60-display-last-tracks-and-some-dump-metadata
  • 58-create-api-for-main-routes
  • 40-add-more-default-playlists-in-quick-create-feature
  • 37-batch-update-recently-played-tracks
  • 11-improve-new-playlist-name-and-description
  • 15-add-a-play-now-button-on-created-playlist-message
  • 20-rename-playlist-with-artists-names
  • 30-save-spotify-personal-token-for-external-use
10 results

index.php

Blame
  • index.php 1.55 KiB
    <?php
    session_start();
    
    require '../vendor/autoload.php';
    require '../config.php';
    
    if (isset($_GET['logout'])) {
        $_SESSION['accessToken'] = '';
        $_SESSION['refreshToken'] = '';
    }
    
    $accessToken = '';
    if (isset($_SESSION['accessToken'])) {
        $accessToken = $_SESSION['accessToken'];
    }
    $refreshToken = '';
    if (isset($_SESSION['refreshToken'])) {
        $refreshToken = $_SESSION['refreshToken'];
    }
    
    if (!$accessToken) {
        header('Location: auth.php');
        die();
    }
    
    $session = new SpotifyWebAPI\Session(
        $CLIENT_ID,
        $CLIENT_SECRET
    );
    
    // Use previously requested tokens fetched from session
    if ($accessToken) {
        $session->setAccessToken($accessToken);
        $session->setRefreshToken($refreshToken);
    } else {
        // Or request a new access token
        $session->refreshAccessToken($refreshToken);
    }
    
    $scopes = $session->getScope();
    
    $options = [
      'scope' => [
          'playlist-read-private',
          'playlist-modify-private',
          'user-read-private',
      ],
    'auto_refresh' => true,
    ];
    
    $api = new SpotifyWebAPI\SpotifyWebAPI($options, $session);
    
    // Save new tokens, they might have been updated
    $_SESSION['accessToken'] = $session->getAccessToken();
    $_SESSION['refreshToken'] = $session->getRefreshToken();
    
    // ################################################################
    
    $user = $api->me();
    
    $templateData = [];
    
    $templateData['user'] = $user;
    $templateData['userImageUrl'] = '';
    if ($user->images[0]) {
        $templateData['userImageUrl'] = $user->images[0]->url;
    }
    $templateData['playlists'] = $api->getUserPlaylists($user->id)->items;
    
    require '../template.php';