Как отобразить данные stackexchange на моем сайте?

1

Введение
Я разрабатываю свой презентационный сайт, и я хочу включить в него информацию/сообщения/данные профиля Qaru (например, верхний тег, оценка и т.д.).

Я нашел data.stackexchange.com для получения желаемых данных, но я не могу понять, как я могу показать эти данные на своем сайте.
В github.com я нашел следующие предпосылки: https://github.com/StackExchange/StackExchange.DataExplorer#prerequisites, который в основном говорит, что я должен быть программистом.NET, чтобы иметь возможность отображать эти данные, но я программист PHP, я работать с Apache MySQL и PHP.

Я знаю, что есть много функций PHP MsSQL, которые я могу использовать, но как я могу подключиться к базе данных Stack Exchange (я думаю, что это гость/ограниченный пользователь), с помощью которого пароль пользователя?

Даже если это не слишком много по теме, где я могу найти дополнительную информацию о том, как я могу отображать данные Qaru на моем сайте?

  • 1
    Посмотрите на этот виджет WordPress
  • 1
    Спасибо @beresfordt за ваш ответ, но я не могу / не хочу использовать WordPress, есть ли что-то, что я могу использовать с чистым PHP?
Показать ещё 3 комментария
Теги:
authentication
dataexplorer

2 ответа

0
Лучший ответ

Даже если ответ 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"];
1

Я рекомендую проверить 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;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню