Первое, что я попробую, - это забыть о библиотеках и попытаться точно понять, что происходит в контексте подписчика. Должно быть действительно очень просто создать скрипт, который обрабатывает все это вместе.
Абонентское приложение должно сделать 2 вещи:
- Подтвердите подписку: концентратор проверит намерение подписчика. Это запрос GET
- Сделка с входящими пингами. Это запрос POST.
Итак, начнем:
- Поместите сценарий где-нибудь в сети (он должен быть доступен из-за брандмауэра), который должен быть готов для обработки GET-запросов от концентратора. Убедитесь, что only повторяет параметр
hub.challenge
, который он получает в теле ответа и возвращает 200.
- Отправьте из своей командной строки следующее:
curl -X POST <a href="http://pubsubhubbub.appspot.com/" rel="nofollow">http://pubsubhubbub.appspot.com/</a> -d'hub.mode=subscribe' -d'hub.verify=sync' -d'hub.topic=http://the.feed.url' -d'hub.callback=http://the.script.url' -D-
- Вы должны увидеть входящий запрос на проверку подлинности в сценарии. В идеале (если вы выполнили шаг 1, он должен повторить вызов hub.challenge и вернуть 200.
Если все в порядке, то отправленный вами запрос завитка должен сообщить вам, что концентратор возвратил 204. Если вы получите что-то еще, проверьте текст ответа, и он укажет вам, что пошло не так.
Позже ...
- Ваш скрипт получит запрос POST. Это уведомление о новом контенте!
- Разобрать необработанное тело (XML) этого запроса POST, оно содержит канал, только с новыми записями.
- Делайте все, что нужно, с проанализированным содержимым (сохраняйте в базу данных и т. Д.).
Надеюсь, это поможет. Вы можете также использовать этот инструмент для отладки своей подписки, если вам нужна помощь.