SpotifyWebAPI\Session::requestAccessToken PHP Method

requestAccessToken() public method

Request an access token given an authorization code.
public requestAccessToken ( string $authorizationCode ) : boolean
$authorizationCode string The authorization code from Spotify.
return boolean True when the access token was successfully granted, false otherwise.
    public function requestAccessToken($authorizationCode)
    {
        $parameters = ['client_id' => $this->getClientId(), 'client_secret' => $this->getClientSecret(), 'code' => $authorizationCode, 'grant_type' => 'authorization_code', 'redirect_uri' => $this->getRedirectUri()];
        $response = $this->request->account('POST', '/api/token', $parameters, []);
        $response = $response['body'];
        if (isset($response->refresh_token) && isset($response->access_token)) {
            $this->refreshToken = $response->refresh_token;
            $this->accessToken = $response->access_token;
            $this->expirationTime = time() + $response->expires_in;
            return true;
        }
        return false;
    }

Usage Example

 /**
  * @param Request $request
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function showPlaylistList(Request $request)
 {
     $session = new SpotifyWebAPI\Session(Config::get('spotify.client_id'), Config::get('spotify.client_secret'), Config::get('spotify.redirect_url.showPlaylistList'));
     $api = new SpotifyWebAPI\SpotifyWebAPI();
     try {
         if (isset($_GET['code'])) {
             $session->requestAccessToken($_GET['code']);
             $api->setAccessToken($session->getAccessToken());
         } else {
             header('Location: ' . $session->getAuthorizeUrl(array('scope' => array('playlist-modify-private', 'playlist-modify-public', 'playlist-read-private'))));
             die;
         }
     } catch (Exception $e) {
         Log::error($e->getMessage());
         return redirect('/spotify/step_one');
     }
     if (!$request->session()->get('spotify.user_id') && $request->session()->get('spotify.playlist_id')) {
         return redirect('/spotify/step_one');
     }
     $playlistTracks = $api->getUserPlaylistTracks($request->session()->get('spotify.user_id'), $request->session()->get('spotify.playlist_id'));
     $spotifyPlaylist = array();
     $data = array();
     foreach ($playlistTracks->items as $track) {
         $track = $track->track;
         $spotifyPlaylist[$track->id] = $track->name . ' ' . $track->artists[0]->name;
         $data[] = array('id' => $track->id, 'name' => $track->name, 'artists' => $track->artists[0]->name);
     }
     $request->session()->put('spotify.songs', $spotifyPlaylist);
     return View::make('spotify.step_four')->with('data', $data);
 }