Это решение, которое я выбрал.
1.Как получить идентификатор потока 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.Вот и все.