Я знаю, что это старый вопрос, но Google выдает много таких SO вопросов (это лучший результат), в основном без каких-либо четких ответов или ответов, которые основаны на Github API, который, кажется, не очень хорошо работает .
Я изо всех сил пытался получить количество комментариев в течение нескольких дней, а также пробовал тот класс API, который, казалось, вылетал из моего приложения с некоторой фатальной ошибкой.
После более продолжительного поиска я наткнулся на ссылку на вывод JSON API Disqus, и после некоторой игры я написал быструю функцию для получения количества комментариев:
function getDisqusCount($shortname, $articleUrl) {
$json = json_decode(file_get_contents("https://disqus.com/api/3.0/forums/listThreads.json?forum=".$shortname."&api_key=".$YourPublicAPIKey),true);
$array = $json['response'];
$key = array_search($articleUrl, array_column($array, 'link'));
return $array[$key]['posts'];
}
Вам необходимо зарегистрировать приложение, чтобы получить свой открытый ключ API, что вы можете сделать здесь: https://disqus.com/api/applications/
Эта функция будет просто выводить общее количество комментариев, которые вы можете затем сохранить в базе данных или что-то еще.
Что делает эта функция:
Массив $json
возвращает много информации о странице, на которой находится ваш плагин комментариев. Например:
Array
(
[0] => Array
(
[feed] => https://SHORTNAME.disqus.com/some_article_url/latest.rss
[identifiers] => Array
(
[0] => CUSTOMIDENTIFIERS
)
[dislikes] => 0
[likes] => 0
[message] =>
[id] => 5571232032
[createdAt] => 2017-02-21T11:14:33
[category] => 3080471
[author] => 76734285
[userScore] => 0
[isSpam] =>
[signedLink] => https://disq.us/?url=URLENCODEDLINK&key=VWVWeslTZs1K5Gq_BDgctg
[isDeleted] =>
[raw_message] =>
[isClosed] =>
[link] => YOURSITEURLWHERECOMMENTSARE
[slug] => YOURSITESLUG
[forum] => SHORTNAME
[clean_title] => PAGETITLE
[posts] => 0
[userSubscription] =>
[title] => BROWSERTITLE
[highlightedPost] =>
)
[1] => Array
(
... MORE ARRAYS OF DATA FROM YOUR SHORTNAME FORUM ... etc
)
)
Поскольку массив возвращается без каких-либо полезных ключей массива верхнего уровня, мы делаем array_search
для массива с помощью ключа имени столбца, который будет нам известен: URL вашей страницы, где плагин комментариев ([link]
)
Затем будет возвращен ключ массива верхнего уровня, в данном случае 0
, который мы затем можем передать обратно для извлечения необходимой нам информации из массива, такой как общее количество комментариев (ключ массива posts
).
Надеюсь, это кому-нибудь поможет!