Work: Доступ к like/unlike статистике Google Reader для произвольного RSS

Work Add comments

Обнаружил интересный hack (?) который даёт ответы на вопросы:
Как автоматически выделять самые интересные статьи из RSS потоков?
Как понять какие статьи пользуются популярностью а какие нет?
Как получить feedback от пользователей которые читают сайт через RSS?

В июле этого года Google запустил like/unlike в Google Reader. Человек читает статью - она ему интересна - человек отмечает ее как “понравилось”.

Всем читателям этого RSS потока видно, кому понравилась эта статья и сколько их. Задумывалось, что счастливые юзера будут кликать на имена, проверять что там эти люди ещё расшарили интересного и находить себе компанию по интересам.

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

Этакий digg или stumbleupon в миниатюре и совершенно бесплатно.
Ну а теперь как это сделать

Здесь и далее я буду использовать термин RSS как собирательный образ для всех синдикативных протоколов.

Широко известный факт, что Google Reader отдает нормализованные, агрегированные им RSS потоки. Надо только сформировать правильно URL:

http://www.google.com/reader/public/atom/feed/<url encoded feed URL>

Например для http://www.engadget.com/rss.xml это выглядит как

http://www.google.com/reader/public/atom/feed/http%3A%2F%2Fwww.engadget.com%2Frss.xml

Заглянув в source агрегированного Google Reader RSS/Atom потока видим такие теги

<gr:likingUser>00319180390340199299</gr:likingUser>
<gr:likingUser>09803098588727110477</gr:likingUser>
<gr:likingUser>09419458535147286956</gr:likingUser>
<gr:likingUser>01041706060102840430</gr:likingUser>
<gr:likingUser>16152963933826181588</gr:likingUser>
<gr:likingUser>02215958792577066354</gr:likingUser>

Это ID юзеров которые отметили статью как “понравилось”. Можно даже воспользоваться Social Graph API и посмотреть кто же эти люди такие. Или можно посмотреть что эти люди расшарили. Что бы понять как это работает смотрите src линков.

Так как все эти <gr:likingUser> теги видны всем без авторизации то можно автоматически отфильтровывать статьи с низким порогом “понравилось”. Можно вычислять точно количество “понравилось” и делать далеко идущие выводы.

Прямо в RSS потоке Google Reader отдает не более 100 user ID. Но если нужно знать точное число можно сконструировать URL вида

http://www.google.com/reader/api/0/item/likers?i=<gr:original-id>&output=<json|xml>

и пересчитать их всех. Например: JSON, XML

Хорошо работает для популярных, англоязычных RSS. Чем меньше аудитория тем разумеется хуже работает crowd-sourcing.

Похожие записи:

One Response to “Work: Доступ к like/unlike статистике Google Reader для произвольного RSS”

  1. Инк Лонгтан Says:

    Очень хорошо. Спасибо большое.

Leave a Reply

Entries RSS Comments RSS Log in Admin