i have a problem, when i generate the first oauth response via uber api, i get all the information needed(access_token, refresh_token)
But when i wish to refresh the access_token for a specific user, i get invalid_grant(i know that this means the refresh token has expired, but i generate the codes and at first try it fails even if the codes are still valid)
this is the code i use for refreshing the token, can someone please explain why it is failing to give me a new code?
function refreshToken()
{
$url = 'https://login.uber.com/oauth/v2/token';
$fields = array(
'client_id' => MY_CLIENT_ID,
'client_secret' => MY_CLIENT_SECRET,
'grant_type' => "refresh_token",
'refresh_token' => MY_REFRESH_TOKEN
);
$fields_string = '';
foreach ($fields as $key => $value) {
$fields_string .= $key . '=' . $value . '&';
}
$fields_string = rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
I have the codes stored in the database, grab them and try to use them from there, the auth-code works fine after i oauth, but i need to be able to refresh the access token in order to query the UBER api for the receipt ready post on my webhook, if the token is expired i can't access the call with the current auth token i have(bearer token)
this is the response i get every time:
[error] => invalid_grant