Disqus: получить идентификатор потока или URL для отображения комментариев на отдельной странице - PullRequest
0 голосов
/ 08 декабря 2018

Вместо того, чтобы показывать комментарии прямо на странице, я хочу разместить ссылку на соответствующую страницу ветки на disqus.com.Два вопроса:

  1. Как получить идентификатор потока Disqus (или URL-адрес потока) для страницы? **
  2. Можно ли создать такую ​​страницу, если ранее не было опубликовано ни одного комментарияв ветку? **

Пояснительная информация:

Disqus имеет отдельную страницу для каждого веб-сайта, где вы можете увидеть все прокомментированные страницы: https://disqus.com/home/forum/%SITENAME%/, где %SITENAME% это название форума, используемое Disqus для вашего веб-сайта.

Каждая прокомментированная (!) страница имеет свой собственный URL, например: https://disqus.com/home/forum/%SITENAME%/__1234/, где __1234 - это примервнутренний идентификатор (идентификатор потока?) Disqus использует.Обратите внимание, что это НЕ идентификатор страницы, установленный через переменную JS this.page.identifier.

1 Ответ

0 голосов
/ 12 декабря 2018

Это решение, которое я выбрал.

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 никогда не запускались, слаг потока будет пустым, поскольку его необходимо создать в первую очередь.

Страница цепочки может быть создана двумя способами:

  1. Запустив Disqus сценарии инициализации на странице хотя бы один раз.
  2. Вручную черезthreads/create Конечная точка API.Это требует аутентификации и в настоящее время находится в бета-версии.См. Документы здесь: https://disqus.com/api/docs/threads/create/

Результат: Вместо того, чтобы создавать поток вручную, я просто запускаю сценарий инициализации Disqus и затем получаю порцию потока через API.Вот и все.

...