对于其他人以及我来说,这似乎是一个持续存在的问题。但是,即使按照"可能已经有你答案的问题的链接"发布时,我仍然无法使其发挥作用。
我真正想要的是通过传递帖子的标识符(或URL)来给定文章的评论计数。
我从github下载了这个:https://github.com/disqus/disqus-php
然后按照第一个答案:How to get Disqus comment count for a page using Disqus PHP API?这似乎与我想要达到的最接近。这让我走得很远:
<?php
require_once('scripts/disqusapi/disqusapi.php');
$disqus = new DisqusAPI('secret_key');
$page_with_comments = $disqus->posts->details(array('thread'=>"LINK-IDENTIFIER"));
$comment_count = $page_with_comments->posts;
?>
当我这样做时,我收到了这个错误:
Fatal error: Uncaught exception 'Exception' with message 'Missing required argument: post' in /home/mugheads/public_html/scripts/disqusapi/disqusapi.php:82 Stack trace: #0 /home/mugheads/public_html/test.php(4): DisqusResource->__call('details', Array) #1 /home/mugheads/public_html/test.php(4): DisqusResource->details(Array) #2 {main} thrown in /home/mugheads/public_html/scripts/disqusapi/disqusapi.php on line 82
此错误表示您无法再使用&#34; thread&#34;检索所需的JSON ..无论如何我都无法找到ID如何使用这些帖子作为使用&#34; post&#34;像错误描述只接受一个整数。
如果有人知道更简单的方式,或者肯定有效的方式请分享!
非常感谢任何帮助!
答案 0 :(得分:1)
我知道这是一个老问题,但谷歌提出了很多这些问题,大多没有任何可靠的答案或答案,这些答案或答案都依赖于这个似乎不能很好地运行的Github API。
我一直在努力让评论计数好几天,并且还尝试了那个似乎使我的应用程序崩溃的API类(可能是由于同样的致命错误)。
经过一番搜索后,我偶然发现了一条指向Disqus API的JSON输出的链接,经过一些游戏后,我编写了一个快速函数来获取评论数:
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
)。
希望这有助于某人!