Использование friendfeed в качестве внешней системы комментариев

Бессарабов Иван, ivan@bessarabov.ru
3 ноября 2009

Список статей

Оглавление:

Постановка задачи

Я решил, что нужно сделать обсуждение моих статей. Каждая моя статья это просто html страница. Совершенно без проблем можно создать базу, написать несколько простых скриптов и сделать возможность комментировать. Но городить такую систему совершенно не хотелось, а хотелось чего-то красивого и очень простого. Я стал присматриваться к системам комментирования IntenseDebate и disqus, зарегистрировался в них и даже прикрутил на тестовом сервере сначала первую, а потом вторую систему, но они мне, ну совершенно, не понравились.

Я достаточно давно общаюсь на friendfeed и эта штука мне очень нравится. В какой-то момент в моей голове сложилась совершенно замечательная мысль: «а почему бы не использовать friendfeed в качестве внешней системы комментариев?»

Я стал искать, но оказалось, что то чего я хочу в природе не существует, однако у friendfeed есть замечательный api, который позволяет все это реализовать.

Решение

Итак, я написал самую элементарную реализацию френдфида в качестве внешней системы комментирования. Исходный код проекта находится на github, откуда любой может его скачать (а так же внести исправления).

Обращаю ваше внимание, что система совсем ранняя бета: она мало что умеет и наверняка в ней есть ошибки. Поскольку система бета, в ней может поменяться вообще все, так что не стоит расчитывать что интерфейс ее сохранится. Если вы используете ее, пожалуйста расскажите мне. Мне очень инетерсно узнать о вашем опыте. Я планирую дорабатывать ее и всегда рад выслушать любые ваши комментарии и замечания.

Отдельной строкой говорю, что система поставляется as is и никаких гарантий ничего я не предоставляю.

Как использовать

После того, как вы скачали весь исходный код с github, вам нужно разместить все файлы на вашем вебсервере. Файлы там следующие:

Следующее действие — вам нужно подключить js и стили. Для этого в блоке head прописываете подключение этих файлов:

<script src="js/frf3rd.js" type="text/javascript"></script>
<link rel="stylesheet" href="css/frf3rd.css" type="text/css" />

Последним действием вам нужно разместить на странице div в котором вы хотите, чтобы размещались комментарии и разместить js код:

<div id="friendfeed-comments">
</div>

<script type="text/javascript">

    // id записи
    var ff_entry_id = "e/c5eb99af562b4499aa4c85716ac92553";

    // id div в который нужно размещать коментарии
    var ff_div_id = "friendfeed-comments";

    createFriendFeedComments(ff_entry_id, ff_div_id);

</script>

Вот пример работы кода выше. В этом примере отображаются все комментарии вот к этому посту. И если в посте добавятся комментарий или лайк, или что-то поменяется, то при следующей загрузке странице данные будут корректные (да, вы правильно прочитали между строк, real time web-ом тут и не пахнет).

Как выяснить id записи

В алгоритме который я привел, есть один совершенно непонятный момент: а где взять id записи? К сожалению, удобного способа я пока не нашел (но поиски продолжаю). Сейчас я действую так: захожу на свою ленту через api http://friendfeed-api.com/v2/feed/bessarabov?pretty=1 и вижу несколько своих последних сообщений. В блоке массива entries я и нахожу значение нужного мне id и вставляю его в код.

Проблема

Несмотря на то, что сейчас функционал системы очень ограничен, ее все равно можно использовать (что я и делаю на своем сайте bessarabov.ru). На странице комментарии отображаются, можно зайти в friendfeed и написать новый. Все хорошо. Но есть одна проблема, правильное решение которой я пока не придумал.

Проблема — нежелательные комментарии. Я, как владелец сайта, хочу управлять комментариями. Вдруг ко мне придет спамер или кто-то напишет полную чушь совершенно не относящуюся к делу? Во френдфиде сейчас, к моему большому сожалению, нет возможности автору сообщения управлять комментариями.

Так что сейчас тут можно оставлять любые комментарии и я ничего с этим поделать не смогу =) (но, как вы понимаете, то что это делать можно не означает, что это делать нужно =)

Решение этой проблемы — это создание некой промежуточной системы, где будет хранится информация отображать ли комментарий или же нет. Но такое решение мне не очень нравится. Пока продолжаю думать. Если у вас есть идеи о том, как это можно решить, пожалуйста напишите.

Об индексации

Буквально два слова. Поскольку комментарии подгружаются с помощью javascript, то поисковые роботы их не индексируют. Google вроде-как экспериментирует, чтобы пауки выполняли js код, но пока это не используется повсеместно, так что размещение этих комментариев на сайте никак не повлияет не то как ваш сайт индексируется. С одной стороны это плохо, но с другой стороны это хорошо — спамеры не заинтересованы попадать в комментарии.

Что дальше

Итак, первая версия системы запущена. На данный момент я планирую развивать этот проект в следующих направлениях.

Чем более вы будете заинтересованы в развитии этого проекта (и чем более вы мне об этом будете сообщать), тем быстрее проект будет развиваться. Я с огромным удовольствием выслушаю все ваши комментарии и с благодарностью приму любую вашу помощь. Пишите либо в комментарии, либо на почту.

Комментарии