@krispeyJAk

Php cURL как получить параметры из ответного url?

Есть cURL который отправляет данные на сайт, а сайт в ответе возвращает ссылку с кодом в get параметрах url:

$curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL => 'https://api.getglue.co/apiV15/glue/getAuthorizationCode',
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'POST',
            CURLOPT_POSTFIELDS => 'response_type=code&client_id=test&redirect_uri=https://test.ru/interceptCode&state=xyz',
            CURLOPT_NOBODY => false
            ));

        $response = curl_exec($curl);

        curl_close($curl);

В таком случае cURL ничего не выводит (пусто)

Если просто вручную прописать ссылку в браузере и перейти, то происходит редирект на ссылку с такими параметрами:
https://test.ru/interceptCode?code=4b0666110f50f1040c217307817da500bb672453&state=xyz

Как мне получить эту ссылку (точнее параметр code) через cURL?
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
$response = curl_exec($curl);

$last_url = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL); //<---

var_dump($last_url);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Если задача именно получить урл, а не переходить по нему, то надо убрать CURLOPT_FOLLOWLOCATION и смотреть заголовки.

Из них уже тянуть урл редиректа. Если программный переход по этому урл нужен, то соответственно смотрите ответ nokimaro.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы