Введение
Я разрабатываю свой презентационный сайт, и я хочу включить в него информацию/сообщения/данные профиля Qaru (например, верхний тег, оценка и т.д.).
Я нашел data.stackexchange.com для получения желаемых данных, но я не могу понять, как я могу показать эти данные на своем сайте.
В github.com я нашел следующие предпосылки: https://github.com/StackExchange/StackExchange.DataExplorer#prerequisites, который в основном говорит, что я должен быть программистом.NET, чтобы иметь возможность отображать эти данные, но я программист PHP, я работать с Apache
MySQL
и PHP
.
Я знаю, что есть много функций PHP MsSQL, которые я могу использовать, но как я могу подключиться к базе данных Stack Exchange (я думаю, что это гость/ограниченный пользователь), с помощью которого пароль пользователя?
Даже если это не слишком много по теме, где я могу найти дополнительную информацию о том, как я могу отображать данные Qaru на моем сайте?
Даже если ответ CONFUS3D является хорошим решением, любое изменение пользовательского интерфейса может вызвать ошибки на вашем сайте.
Я предлагаю вам использовать набор инструментов Stack Exchange API, с помощью которого вы можете получить большую часть данных, которые вам, вероятно, понадобятся.
Любой запрос 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, которые вам нужно использовать, затем объявите два vars $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;