У меня здесь довольно дилемма, в то время как я тестирую в песочнице Uber, используя URI перенаправления на http://localhost
, функция ниже работает просто отлично и возвращает токен доступа, и я могу использовать все их вызовы API без ошибок
НО, когда я пытаюсь изменить URI перенаправления на API с https, функция ниже не работает, вся информация принимается так же, как для localhost, но когда выполняется CURL, я получаю
{"error":"invalid_request"}
и следующий код - это функция, которую я использую для этого:
function fetchUrl($url, $code)
{
$fields = array(
'client_id' => "MY_CLIENT_ID",
'client_secret' => "MY_CLIENT_SECRET",
'grant_type' => "authorization_code",
'code' => $code
);
$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_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//up to this point works for HTTPS redirect uri
$result = curl_exec($ch); //the second this runs, i get
//{"error":"invalid_request"}
curl_close($ch);
return $result;
}
для указанной выше функции:
параметр $url
установлен на https://login.uber.com/oauth/v2/token и$code
устанавливается на то, что я получаю после того, как oauth проходит и возвращает необходимый код (код получен в 100% попыток).
Любая помощь приветствуется!Заранее спасибо!