RecentForce99
@RecentForce99

Как отправить запрос по API, запустив скрипт из консоли?

Всем привет! Есть у меня скрипт для получения тарифов из Москвы СДЭК 2.0. Если запускать в браузере всё норм, но в командной строке возвращает пустоту. Как можно исправить?
Код:

$clientId = 'Здесь прописан валидный ID';
        $clientSecret = 'Здесь прописан валидный ключ';
        if (!(isset($clientId) and isset($clientSecret) and (($clientId . "") != "") and (($clientSecret . "") != ""))) {
            echo "Вы не заполнили \$clientId или \$clientSecret необходимые для получения авторизационного токена.";
            exit;
        }

// В строчке ниже объект содержащий запрос, этот объект необходимо передавать представленным в виде строки JSON, в строчке ниже переменной сразу же присваивается строка JSON
        $requestObjectString = '{
    "type": 1,
    "date": "' . date('Y-d-m') . 'T' . date('G:i:s') . '+0700",
    "currency": 1,
    "lang": "rus",
    "from_location": {
    "code": 44
    },
    "to_location": {
    "code": 44
    },
    "packages": [
    {
    "height": 10,
    "length": 10,
    "weight": 10,
    "width": 10
    }
    ]
    }';
//[НАЧАЛО]Первый запрос(получение авторизационного токена)
        $curl1 = curl_init();//Инициализируем переменную CURL
        $postFieldsAr = array(//В 3-х строчках ниже данные которые передаются методом POST в первом запросе(то есть в запросе авторизационного токена), в втором запросе они не используются
            "grant_type" => "client_credentials",//Тип
            "client_id" => $clientId,//Идентификатор клиента
            "client_secret" => $clientSecret//Секретный ключ клиента
        );

        curl_setopt_array($curl1, array(
            CURLOPT_URL => "https://api.cdek.ru/v2/oauth/token?parameters",//URL на который отправляем запрос, в данном случаи это URL получения авторизационного токена
            CURLOPT_RETURNTRANSFER => true,//Устанавливаем этот параметр в true чтобы сохранить результат запроса в переменную иначе вывод сразу же будет направлен в браузер
            CURLOPT_POST => true,//Указываем что данные отправляются методом POST
            CURLOPT_POSTFIELDS => http_build_query($postFieldsAr)//Кодирование массива с оправляемыми данными для передачи методом POST
        ));

        $response = curl_exec($curl1);//Сохраняем тело ответа от сервера CDEK в переменную $response
        curl_close($curl1);
        print_r($response);
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Так у вас в скрипте ни чего не выводится, что он может вернуть?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы