Я потратил много времени на устранение неполадок, используя документацию PHP, документацию по API, а также другие публикации по stackoverflow, и, наконец, прошу помощи.
Я пытаюсь написать интерфейс с использованием нового API pbSmartConnections: Документация API
У меня были проблемы с fsockopen и cURL, однако я, кажется, могу продвинуться дальше в процессе, использующем cURL, так что это то, что я представляю здесь. Вот вызов:
В соответствии с моим пониманием документации, я должен передавать ApiKey как часть заголовка. Когда я делаю это, независимо от различных способов структурирования кода, я ВСЕГДА получаю следующий ответ:
{
"ErrorCode": 10,
"Message": "Unauthorized"
}
Я надеюсь, что другой член SO сможет увидеть что-то в моем коде ниже (пожалуйста, также предлагайте любую критику и / или предложения!):
(ПРИМЕЧАНИЕ. Ключ API ниже действителен. Он подключен к учетной записи, в которой нет ничего ценного, поэтому не стесняйтесь использовать ее в своем тестировании)
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://rest.pbsyscontrol.com/v1/Ping");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type"=>"application/json", "Accept"=>"application/json", "ApiKey"=>"41460b3f-8f35-4878-b78d-49ca7f29c071"));
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
?>
Если вам интересно, хотя я хотел бы, чтобы это работало как часть заголовка, я попытался передать его как часть URL:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://rest.pbsyscontrol.com/v1/Ping?ApiKey=41460b3f-8f35-4878-b78d-49ca7f29c071");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type"=>"application/json", "Accept"=>"application/json", "ApiKey"=>"41460b3f-8f35-4878-b78d-49ca7f29c071"));
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
?>