Disqus:获取线程ID或URL以在单独的页面上显示评论

时间:2018-12-08 15:23:21

标签: disqus

我不想在页面上直接显示评论,而是要链接到disqus.com上相应线程页面的链接。两个问题:

  1. 如何获取页面的Disqus线程ID(或线程URL)?**
  2. 如果之前没有在线程中发布评论,是否可以创建这样的页面?**

说明性信息:

Disqus每个网站都有一个单独的页面,您可以在其中看到所有评论的页面: https://disqus.com/home/forum/%SITENAME%/,其中%SITENAME%是Disqus为您的网站使用的论坛名称。

每个有注释的(!)页面都有其自己的URL,如下所示:https://disqus.com/home/forum/%SITENAME%/__1234/,其中__1234是Disqus使用的内部ID(线程ID?)的示例。请注意,这不是通过JS变量this.page.identifier设置的页面ID。

1 个答案:

答案 0 :(得分:0)

这是我最终得到的解决方案。

1。如何获取页面的Disqus线程ID(或线程URL)?

他们称它为线程段。可以采用threads/detail端点的形式。在此处查看文档:{​​{3}}

这是jQuery ajax代码示例:

$.ajax({
    type: 'GET',
    url: "https://disqus.com/api/3.0/threads/details.json", // API endpoint
    data: {
        api_key: '%YOUR_API_KEY%',
        forum : '%YOUR_FORUM_NAME%',
        thread: 'ident:%PAGE_IDENTIFIER%', // get thread by identifier
        thread: 'link:' + %PAGE_URL%,        // OR get thread by page url
    },
    cache: false,
    dataType: 'jsonp', // for cross-domain requests
    success: function (result) {
        var slug = result.response.slug; //this will contain the thread slug

        // let's update the link somewhere on the page
        $('.disqus-comments-link')
             .attr('href','https://disqus.com/home/discussion/%YOUR_FORUM_NAME%/' + slug + '/');
    }
});

2。如果以前没有发表评论,是否可以创建话题?

它更复杂。如果您将上面的代码用于从未运行过Disqus脚本的页面,则线程slug将为空,因为需要首先创建它。

可以通过两种方式创建线程页面:

  1. 通过在页面上运行Disqus https://disqus.com/api/docs/threads/details/至少一次。
  2. 通过threads/create API端点手动进行。它需要身份验证,目前处于测试阶段。在此处查看文档:{​​{3}}

结果:我没有运行手动创建线程,而是运行了Disqus初始化脚本,然后通过API获取线程。就是这样。