Агрегирование и отображение нескольких каналов - PullRequest
1 голос
/ 04 мая 2010

Я хочу получить каналы для нескольких онлайн-сервисов (например, Tumblr, Google Reader, Delicious) и объединить их в один канал для отображения на моем сайте.Мне известны такие сервисы, как YQL или Yahoo!Трубы, которые будут объединять каналы, но иногда эти службы работают слишком медленно.Мне было интересно, что будет лучшим способом, если я захочу запустить это на своем собственном сервере (используя JavaScript или PHP)?В идеале я бы кешировал результаты, чтобы сократить обработку.

Ответы [ 2 ]

1 голос
/ 04 мая 2010

Этот ответ на самом деле не решает вопрос программирования здесь, но: Вы уже упоминали о Google Reader, но, по моему мнению, сам Google Reader был бы весьма полезен в качестве агрегатора для всех ваших личных каналов, которые вы используете. Delicious, Tumblr и другие предоставляют RSS-ленту для удобного использования в Google Reader, а Google Reader, как и сам RSS-канал, может использоваться автономными программами для чтения RSS-каналов. Поскольку Google Reader запрашивает страницы практически в режиме реального времени, это не будет таким медленным.

JavaScript, на мой взгляд, не будет работать, если вы действительно не откроете свой сайт в браузере. Использование JS и PHP, по-видимому, не решает вашу «слишком медленную» проблему, это может на самом деле добавить к этому. Вам может понадобиться дополнительная служба на вашем сервере для работы в фоновом режиме (с использованием Perl, Python, Java, чего угодно с хорошим XML API), но я бы не рекомендовал PHP или JS для получения данных.

надеюсь, что как-то помогло

1 голос
/ 04 мая 2010

Я бы сказал, что удаленные службы, такие как google feed api , работают отлично, и я сомневаюсь, что ваша собственная реализация будет лучше, чем у Google?

С помощью Feed API вы можете скачать любой публичный Atom, RSS или Media RSS кормить, используя только JavaScript, так что вы можете легко смешивать каналы с вашим контентом и другие API, такие как Google Maps API.

Если вы действительно хотите сделать это на своем собственном сервере, вы можете использовать библиотеки типа simplepie

...