身份验证用户/密码API调用| PHP

时间:2018-03-23 14:56:24

标签: php api authentication

我尝试调用一个返回JSON文件的API:

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 />';
}
?>

但它不起作用,我一直有这个错误:

  

警告:file_get_contents():SSL操作失败,代码为1。   OpenSSL错误消息:错误:14090086:SSL   例程:ssl3_get_server_certificate:证书验证失败   第3行的C:\ wamp64 \ www \ index.php

所以如果我做var_dump($data),我会得到一个Null变量。

在互联网上,该示例主要是指定证书以克服SSL问题,但在我的情况下,我需要提供的用户/密码,我无法使用我找到的示例来使用它在互联网上,所以我来找你。

0 个答案:

没有答案