Reputation: 557
I've been creating my own Spotify API for a project. I've followed the Web API tutorial and I still can not get an authorization for a refresh token.
This request is made immediately after I get my first authorization successfully.
Can anyone spot an issue with my code?
//Request for refresh token
$url = "https://accounts.spotify.com/api/token";
$fieldString = "";
$fields = array(
"grant_type" => "authorization_code",
"code" => $_GET['code'],
"redirect_uri" => $spotify->getRedirectURI()
//"client_id" => $spotify->getClientID(),
//"client_secret" => $spotify->getClientSecret()
);
$headers = array(
"Accept: application/json",
"Content-Type: application/x-www-form-urlencoded",
"Authorization: Basic ".base64_encode($spotify->getClientID().":".$spotify->getClientSecret())
);
echo http_build_query($fields)."<br/>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));
$response = curl_exec($ch);
curl_close($ch);
var_dump(json_decode($response));
Upvotes: 3
Views: 1036
Reputation: 557
The reason I was receiving a bad response is because I needed:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
After I inserted that line, I was able to acquire my tokens. Hopefully this is helpful.
Upvotes: 1
Reputation: 39385
The correct option to set header is CURLOPT_HTTPHEADER
and unfortunately you are using CURLOPT_HEADER
. That's why your authorization header is not set with curl request.
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
Upvotes: 0