我正在使用DISQUS API,我想通过URL搜索一个帖子。
我正在使用官方客户端库:https://github.com/disqus/disqus-php
所以基本上我已经创建了一个以这种方式调用API的函数:
private function getThread($URL){
$params = array(
'forum' => $this->shortname,
'thread' => ("link:" . $URL)
);
$thread = $this->API->threads->list($params);
Debug::dump($thread);
exit;
}
然而,似乎URL过滤不起作用,因为返回的结果是我论坛中的所有线程。
有什么想法吗?
由于
答案 0 :(得分:3)
我成功地提取了所需的信息:
require('disqusapi/disqusapi.php');
$disqus = new DisqusAPI('API_SECRET_KEY');
$thread = $disqus->forums->listThreads(array(
'forum' => 'FORUM_SHORT_NAME',
'thread' => 'link:URL_OF_THE_THREAD'
));
总而言之, link: 元素应该是实际参数值的一部分,而不是其他人建议的密钥。
答案 1 :(得分:1)
“link”不是有效的参数选项。要按URL过滤线程,您需要传递的参数是“thread:link”。
通过网址获取帖子: https://disqus.com/api/3.0/threads/list.json?api_key=[api_key]&forum=[forum]&thread:link=[url]
答案 2 :(得分:0)
我有同样的问题。它似乎不起作用的网址。而不是它显示最后25个线程。我试图通过disqus文档使用另一个disqus URL。我试过这个 https://disqus.com/api/3.0/threads/listPosts.json ,它会返回一个帖子中的帖子列表。虽然它不再起作用。我发现虽然如果你有线程的ID而不是URL,两者都有效。要做到这一点,我必须从我的网站上获取ID。然后将ID放在参数中并将其传递给URL。这似乎有点棘手,但对我来说它有用。另外,要显示的线程的最大值是100,所以如果你的线程太旧它将无法找到它。我试图添加更多参数,如类别,作者等,但仍然无法正常工作。所以在我看来,通过你的网站从线程中获取ID(我使用xmlDoc并通过getElemenetsByTag获取disqus代码,其中包含线程的ID)。我不知道我是否有所帮助,但你可以看到我也有同样的问题。不幸的是,Api并没有给你机会提供更多可能有用的参数。无论如何,它仍然很好。现在我将这样做。