Подтвердить что ты не робот

Как использовать опцию подписчика?

Теперь я начал с Pubsubhubbub (и все о вещах в реальном времени), но у меня возникают проблемы с опцией Subscriber.

Я пытаюсь создать webapp в PHP для:

  • Подписывать RSS (ранее опубликованный) в концентратор (http://pubsubhubbub.appspot.com/);
  • Чтение уведомлений (обновлений) из концентратора для подписки; без успеха!!!: (

Я проверяю, что существует библиотека в php для подписчика (в Git), но использование этой библиотеки не может заставить работу Subscribe (получить ошибку 409!).

Как я могу это сделать?

4b9b3361

Ответ 1

Это старый вопрос, и связанная с ним библиотека PHP ddluis имеет много недостатков.

Рекомендуемый PHP-подписчик в вики Google Code - это PuSHSubscriber:

http://github.com/lxbarth/PuSHSubscriber/

UPDATE:

Я разблокировал PuSHSподписчик: http://github.com/bobdia/PuSHSubscriber

Я сделал несколько несовместимых изменений с оригиналом. Простую реализацию можно найти в каталоге /example. Это не предназначено для реального использования, просто для демонстрационных целей. Надеюсь, вы сочтете это полезным.

Ответ 2

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

Абонентское приложение должно выполнить 2 вещи:

  • Подтвердите подозрительность: концентратор проверяет намерение подозреваемого. Это запрос GET
  • Сделка с входящими сообщениями. Это запрос POST.

Итак, давайте начнем:

  • Поместите script где-нибудь в Интернете (он должен быть доступен из-за брандмауэра), который должен быть обработан для обработки запросов GET от концентратора. Убедитесь, что он только отгоняет параметр hub.challenge, который он получает в теле ответа, и возвращает 200.
  • Отправьте из командной строки следующее: curl -X POST http://pubsubhubbub.appspot.com/ -d'hub.mode=subscribe' -d'hub.verify=sync' -d'hub.topic=http://the.feed.url' -d'hub.callback=http://the.script.url' -D-
  • Вы должны увидеть входящий запрос на проверку на script. В идеале (если вы выполните шаг 1, он должен повторить hub.challenge и вернуть 200.

Если все было в порядке, запрос на отклонение, который вы отправляете, должен сообщить вам, что центр возвратил 204. Если вы получаете что-то еще, проверьте тело ответа, оно покажет вам, что пошло не так.

Далее...

  • Ваш script получит запрос POST. Это уведомление о новом контенте!
  • Разберите исходное тело (XML) этого запроса POST, оно содержит фид, только с новыми записями.
  • Делайте все, что нужно сделать с анализируемым контентом (сохранить в базу данных... и т.д.).

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