Вступление
Я занимаюсь разработкой своего презентационного сайта и хочу включить информацию о моем профиле Stack Overflow / записи / данные (например, топ-тег, рейтинг и т. Д.)
Я нашел data.stackexchange.com, чтобы получить нужные данные, но не могу понять, как я могу показать эти данные на моем сайте.
В github.com я нашел следующие предпосылки: https://github.com/StackExchange/StackExchange.DataExplorer#prerequisites который в основном говорит, что я должен быть .NET программист чтобы иметь возможность отображать эти данные, но я Программист PHP, я работаю с Apache
MySQL
а также PHP
,
Я знаю, что есть много PHP MsSQL функции Я могу использовать, но как я могу подключиться к базе данных Stack Exchange (я думаю, что в качестве гостя / ограниченного пользователя), с каким именем пользователя-паролем?
Даже если это не так уж много по теме, где я могу найти больше информации о том, как я могу отобразить данные переполнения стека на моем сайте?
Даже если ответ CONFUS3D ‘является хорошим решением, любое изменение пользовательского интерфейса может вызвать ошибки на вашем сайте.
Я предлагаю вам использовать Набор API стека Exchange с помощью которого вы можете получить большинство данных, которые вам, вероятно, нужны.
Любой запрос API вернет Объект JSON. Я использую этот класс PHP для извлечения этого объекта:
class ApiReader {
public function getResponse($url) {
$cH = curl_init();
curl_setopt($cH, CURLOPT_URL, $url);
curl_setopt($cH, CURLOPT_HEADER, 0);
curl_setopt($cH, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cH, CURLOPT_TIMEOUT, 30);
curl_setopt($cH, CURLOPT_USERAGENT, cURL);
curl_setopt($cH, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($cH, CURLOPT_ENCODING, "gzip");
$result = curl_exec($cH);
if(curl_errno($cH)) {
$retur = FALSE;
}
else {
$status = curl_getinfo($cH, CURLINFO_HTTP_CODE);
if($status == 200) {
$retur = $result;
}
else {
$retur = FALSE;
}
}
curl_close($cH);
return $retur;
}
}
Я использую этот маленький трюк для тестирования сайта, даже если я не в сети.
На вашем хосте сохраните все необходимые вам JSON-объекты, а затем объявите две переменные. $UInfo_API
содержащий запрос API и $UInfo_Syn
который получает содержимое сохраненного объекта JSON
$UInfo_API = "api.stackexchange.com/2.2/users/5039442?site=stackoverflow";
$UInfo_Syn = file_get_contents("yourjsonobject.json");
Затем сохраните результат в переменной, проверяя, getResponse()
метод не удался или нет. После этого у вас есть данные на кран.
$sear = new ApiReader();
$uInfo = $sear->getResponse($UInfo_API);
$uInfo = ($uInfo !== FALSE)? json_decode($uInfo, TRUE): json_decode($UInfo_Syn, TRUE);
$rep = $uInfo["items"][0]["reputation"];
Я рекомендую проверить http://simplehtmldom.sourceforge.net/
Примерно так должно получиться репутации с помощью PHP Simple HTML DOM Parser
$html = file_get_html('https://stackoverflow.com/users/5039442/thetaskmaster');
$reputation = $html->find('.reputation', 0)->plaintext;