safeLoad(); $html = ''; $client_id = $_ENV['SPOTIFY_CLIENT_ID']; $client_secret = $_ENV['SPOTIFY_CLIENT_SECRET']; $access_token = get_access_token($client_id, $client_secret); // TODO: Dynamically retrieve top 10 albums from Spotify API // TODO: Implement server-side caching for faster load times. $albums = [ '2FQieUp8BxPN7OR8fE76TE', '5mUo2e4QpUA7NJl2t51uFu', '7ycBtnsMtyVbbwTfJwRjSP', '2ZytN2cY4Zjrr9ukb2rqTP', '4ZDBQSIDIZRUBOG2OHcN3T', '1FHREwXgTQvqiG8q5KlRzc', '1MmVkhiwTH0BkNOU3nw5d3', '79dL7FLiJFOO0EoehUHQBv', '35qVMfUfBN6q2xzm9rZn5a', '2eQMC9nJE3f3hCNKlYYHL1' ]; $content = ''; foreach ($albums as $album_id) { $data = get_album($access_token, $album_id); $content = $content . ' ' . $data['name'] . ' ' . $data['artists'][0]['name'] . ' Spotify '; } $html = ' ' . $content . '
Art Name Artist Spotify
'; function get_access_token($client_id, $client_secret) { $url = 'https://accounts.spotify.com/api/token'; $data = array( 'grant_type' => 'client_credentials', 'client_id' => $client_id, 'client_secret' => $client_secret ); $post_data = http_build_query($data); $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => array( 'Content-Type: application/x-www-form-urlencoded' ), CURLOPT_POSTFIELDS => $post_data )); $response = curl_exec($ch); if (curl_errno($ch)) { echo curl_error($ch); } else { $data = json_decode($response, true); curl_close($ch); return $data['access_token']; } curl_close($ch); } function get_album($access_token, $album_id) { $url = 'https://api.spotify.com/v1/albums/' . $album_id; $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => array( "Authorization: Bearer $access_token" ) )); $response = curl_exec($ch); if (curl_errno($ch)) { echo curl_error($ch); } else { $data = json_decode($response, true); return $data; } curl_close($ch); } echo $html; ?>