Проверка отдельных учетных записей с API-интерфейсом haveibeenpwned - PullRequest
0 голосов
/ 11 апреля 2019

Я могу успешно вызвать API, используя ответ на https://stackoverflow.com/a/50974724/2014897

<?php
ini_set('user_agent', 'Test App');

// Breach Title
$breach_title = 'Adobe';
// JSON URL
$url = 'https://haveibeenpwned.com/api/v2/breach/'.$breach_title;
// Put the contents of the url into a variable
$json = file_get_contents($url);
// Decode the JSON feed
$object = json_decode($json);

// Echo Results
echo $object->Title;
echo $object->Name;
echo $object->Domain;
echo $object->Description;
echo $object->BreachDate;
?>

... но я не могу понять, как выполнить проверку учетной записи с помощью

GET https://haveibeenpwned.com/api/v2/breachedaccount/{account}

который задокументирован на https://haveibeenpwned.com/API/v2

Я попытался изменить вышеуказанный код с этим изменением ...

$url = 'https://haveibeenpwned.com/api/v2/breachedaccount/'.urlencode($_GET['account']);

... но это изменение приводит к ...

Предупреждение: file_get_contents (https://haveibeenpwned.com/api/v2/breachedaccount/XXXXX@XXXXXXX.com): не удалось открыть поток: сбой HTTP-запроса! HTTP / 1.1 403 Forbidden

UPDATE

Я только что заметил, что официальные документы говорят

403 Запрещено - пользовательский агент не указан в запросе

Я предполагаю, что код пользовательского агента отправляется неправильно ... как это исправить?

ОБНОВЛЕНИЕ № 2

Основываясь на комментариях ниже, я попробовал curl, и теперь у меня есть ...

<?php
// JSON URL
$url = 'https://haveibeenpwned.com/api/v2/breach/'.urlencode($_GET['account']);



$options = array(
    CURLOPT_USERAGENT => "Test App"
);

$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$json = curl_exec( $ch );




// Decode the JSON feed
$object = json_decode($json);

// Echo Results
echo $object->Title;
echo $object->Name;
echo $object->Domain;
echo $object->Description;
echo $object->BreachDate;
?>

Теперь я не получаю ошибку кодирования, но получаю это ...

Вы были заблокированы от доступа к этому ресурсу в «Я уже был» Pwned

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...