PHP - обновление канала синтаксического анализа из протокола PubSubHubHub AppSpot

Я использую https://pubsubhubbub.appspot.com/ для подписки на каналы с помощью хорошо известной реализации протокола PubSubHubHub.

Я подписался на необходимую тему со следующей страницы: https://pubsubhubbub.appspot.com/subscribe

Я получил подтверждение подписки и успешно ответил с помощью hub.challenge, полученного в параметрах $ _GET. Я видел свои журналы веб-сервера, он показывает, что POST-запрос уведомлений отправлен через хаб: http://i.stack.imgur.com/LH44O.png

У меня есть настройка кода, в которой в моей БД хранятся любые пары ключ => значение из $ _POST и $ _GET. Он протестирован и отлично работает.

В: Есть ли способ узнать, как хаб отправляет фид уведомлений? (его точно нет в GET или POST) и как я могу разобрать его в PHP?

Я также изучил рабочий проект протокола, но не мог придумать что-то, что могло бы сработать. https://pubsubhubbub.googlecode.com/git/pubsubhubbub-core-0.4.html#contentdistribution

Я также просмотрел образцы кода, слишком много сложного кода, и для меня не имеет никакого смысла, как я могу перевести его в простой код синтаксического анализа PHP. (Думаю ссылки вам помогут)

https://code.google.com/p/pubsubhubbub/wiki/SubscriberClients

https://code.google.com/p/pubsubhubbub/source/browse/


person Hassan Farid    schedule 07.07.2013    source источник


Ответы (1)


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

Хаб PubSubHubHub.AppSpot мгновенно отправляет уведомление об обновлении канала через POST вместе с частью обновленного канала как часть основного текста. Таким образом, получить обновленную ленту и выполнить синтаксический анализ на любом языке становится просто. Просто извлеките тело страницы и проанализируйте RSS-xml, представленный как основной текст.

Я написал следующий скрипт на PHP, чтобы получить обновленный текст ленты:

$request_body = @file_get_contents('php://input');

$request_body содержит RSS-xml для обновленной ленты. Обработайте его и сохраните любую информацию, которую хотите, из RSS-xml-канала.

Спасибо.

Справочная ссылка: (которая предложила мне простое решение) Реализация обратного вызова подписчика Pubsubhubbub в PHP

person Hassan Farid    schedule 08.07.2013