Вызов API аутентификации пользователя / пароля | PHP

Я пытаюсь вызвать API, который возвращает мне файл JSON:

https://api.sncf.com/v1/coverage/sncf/stop_areas/stop_area:OCE:SA:87391003/departures?datetime=20180323T085700

Как вы заметите, есть окно аутентификации с запросом пользователя и пароля.

У меня есть токен (состоящий только из имени пользователя, без пароля, проверьте сценарий ниже), но мне не удается пройти эту аутентификацию.

Я пробовал это:

<?php
$host='https://api.sncf.com/v1/coverage/sncf/stop_areas/stop_area:OCE:SA:87391003/departures?datetime=20180323T085700';
$json_source=file_get_contents($host);
$username = "d96395d8-342d-4be4-8ed3-5909624abc57";
$password = "";
$additionalHeaders = "";
$payloadName = "";
$process = curl_init($host);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders));
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $payloadName);
$return = curl_exec($process);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
curl_close($process);

$data = json_decode($json_source);
var_dump($data);
foreach ($data->departures as $a) {
    echo $a->display_informations->direction. '<br />';
}
?>

но это не работает, у меня все еще возникает эта ошибка:

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in C:\wamp64\www\index.php on line 3

Итак, если я сделаю var_dump($data), я получу переменную Null.

В Интернете пример в основном касается указания сертификата для преодоления этой проблемы с SSL, но в моем случае это пользователь / пароль, который мне нужно предоставить, и я не смог заставить его работать, используя пример, который я нашел в Интернете, поэтому Я иду к тебе.

Ошибка, которую вы получаете, связана с SSL. Дело даже не в том, что вам нужно беспокоиться о user / pass auth. Итак, решайте одну проблему за раз :) Необходимо настроить cacert для использования curl. После того, как вы избавитесь от ошибки SSL failed, вы можете беспокоиться о user / pass auth (с чем гораздо проще справиться).

IncredibleHat 23.03.2018 16:06

Итак, я должен установить сертификат на свой сервер или мне следует загрузить их сертификат, чтобы настроить завиток?

Will 23.03.2018 16:20

Либо один. Иногда (по опыту) глобальный сертификат не содержит того, что вам нужно, и вам приходится получать сертификат от хоста (или его провайдера). Как будто мне не повезло с сертификатами RapidSSL в прошлом году, и мне нужно было вытащить их напрямую, чтобы добавить, чтобы заставить работать некоторые API.

IncredibleHat 23.03.2018 16:21
Стоит ли изучать 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
3
240
0

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