Disqus: получить идентификатор потока или URL для отображения комментариев на отдельной странице
Вместо того, чтобы показывать комментарии прямо на странице, я хочу разместить ссылку на соответствующую страницу ветки на disqus.com. Два вопроса:
- Как получить ID потока Disqus (или URL потока) для страницы?**
- Можно ли создать такую страницу, если в ветке ранее не было комментариев?**
Пояснительная информация:
Disqus имеет отдельную страницу для каждого веб-сайта, где вы можете увидеть все закомментированные страницы: https://disqus.com/home/forum/%SITENAME%/
, где %SITENAME%
это название форума, используемое Disqus для вашего сайта.
Каждая прокомментированная(!) Страница имеет свой собственный URL, например: https://disqus.com/home/forum/%SITENAME%/__1234/
где __1234
пример внутреннего идентификатора (идентификатора потока?), который использует Disqus. Обратите внимание, что это НЕ идентификатор страницы, установленный через переменную JS this.page.identifier
,
1 ответ
Это решение, которое я закончил.
1. Как получить ID потока Disqus (или URL потока) для страницы?
Они называют это слизняком. Это может быть принято threads/detail
конечная точка. Смотрите документы здесь: https://disqus.com/api/docs/threads/details/
Вот пример кода 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 никогда не запускались, слаг потока будет пустым, поскольку его необходимо создать в первую очередь.
Страница темы может быть создана двумя способами:
- Запустив сценарии инициализации Disqus на странице хотя бы один раз.
- Вручную через
threads/create
Конечная точка API. Это требует аутентификации и в настоящее время находится в бета-версии. Смотрите документы здесь: https://disqus.com/api/docs/threads/create/
Результат: вместо того, чтобы создавать поток вручную, я просто запускаю сценарий инициализации Disqus и затем получаю порцию потока через API. Вот и все.