簡體   English   中英

使用PHP獲取Disqus評論數

[英]Get disqus comment count using PHP

對於我以及其他人來說,這似乎是一個持續存在的問題。但是,即使在發布本文時遵循“可能已經有您的答案的問題”下的鏈接,我仍然無法使它正常工作。

我真正想要的是通過傳遞帖子的標識符(或URL)來計算給定文章的評論數。

我已經從github下載了它: https : //github.com/disqus/disqus-php

並遵循這里的第一個答案: 如何使用Disqus PHP API獲取頁面的Disqus評論計數? 這似乎與我想要達到的目標最接近。 這讓我走了這么遠:

<?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

此錯誤表明您不能再使用“線程”來檢索所需的JSON。並且無論如何,我都無法找到出Disqus為該帖子使用的ID,就像使用“ post”一樣,因為該錯誤說明僅接受一個整數。

如果有人知道更簡單的方法,或者絕對可行的方法,請分享!

任何幫助將不勝感激!

我知道這是一個古老的問題,但是Google提出了很多這樣的SO問題,大部分都沒有任何可靠的答案或依賴於此Github API的答案,而這些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 )。

希望這對某人有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM