Uber CURL не работает при перенаправлении на https

У меня здесь довольно дилемма, пока я тестирую песочницу Uber, используя URI перенаправления на http://localhost, функция ниже работает отлично и возвращает токен доступа, и я могу использовать все их вызовы API без ошибок.

НО, когда я пытаюсь изменить URI перенаправления на API с https, функция ниже больше не работает, вся информация поступает так же, как и для локального хоста, но когда выполняется 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/токен и $code устанавливается на то, что я получаю после того, как oauth проходит и возвращает необходимый код (код получен в 100% попыток).

Любая помощь приветствуется! Заранее спасибо!

Что такое URI перенаправления? Где это в вашем коде?

marekful 14.02.2019 11:35

uri перенаправления находится на странице панели управления uber, когда вы создаете там приложение, вам нужно добавить uri перенаправления, если для него установлено значение локальный хост, оно работает нормально, но второй раз, чтобы отправить его на my-api.com/file_with_the_code_from_localhost, он больше не работает

Andrei Fiordean 14.02.2019 11:37

Я знаком с этой концепцией (хотя и не с Uber API). Вероятно, URI перенаправления должен соответствовать источнику запроса. Так ли это?

marekful 14.02.2019 11:39

да, это так, вся информация для OAUTH возвращается, внутри этого есть код, который должен использоваться для всех их вызовов API, ну, этот код не возвращается, если я не укажу перенаправление на мой локальный хост

Andrei Fiordean 14.02.2019 11:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
130
1

Ответы 1

Я нашел решение здесь, $code следует использовать только один раз для создания access_token и refresh_token, которые позже будут использоваться для обновления access_token.

Моя ошибка заключалась в том, что я пытался генерировать токен каждый раз, когда я использовал метод от uber, который не нужен, если вы выполните шаги из этой ссылки https://developer.uber.com/docs/riders/guides/authentication/user-access-token вы можете быть уверены, что это будет работать просто отлично!

Другие вопросы по теме