我现在开始使用Pubsubhubbub(以及有关实时性的所有内容),但是我在使用Subscriber选项时遇到了麻烦。

我正在尝试用PHP开发一个webapp,以:

  • 向中心(http://pubsubhubbub.appspot.com/)订阅一个RSS(先前已发布);
  • 从中心读取订阅的通知(更新);
    没有成功!!! :(

  • 我确认php to the Subscriber(在Git中)存在一个库,但是
    使用此库无法使“订阅”工作正常(出现409错误!)。

    我怎样才能做到这一点?

    最佳答案

    我要尝试的第一件事是忘记库,并尝试准确了解订户上下文中发生的情况。构建一个可以同时处理所有这些内容的脚本应该真的非常简单。

    订户应用程序必须执行以下两项操作:

  • 确认怀疑:中心将验证怀疑者的意图。这是一个GET请求
  • 处理传入的ping。这是一个POST请求。

  • 因此,让我们开始:
  • 将脚本放置在Web上的某个位置(必须可以从防火墙后面访问该脚本),该脚本必须成捆才能处理来自集线器的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-
  • 您应该在脚本上看到传入的验证请求。理想情况下(如果执行了步骤1,则应回显hub.challenge并返回200。

  • 如果一切正常,您发送的curl请求应该告诉您集线器返回了204。如果还有其他问题,请检查响应的正文,它将指示您出了什么问题。

    之后...
  • 您的脚本将收到POST请求。这是新内容的通知!
  • 解析此POST请求的原始正文(XML),其中包含提要,并且仅包含新条目。
  • 对解析后的内容进行任何处理(保存到数据库等)。

  • 我希望这有帮助。您可以also use this tool调试需要帮助的订阅。

    关于php - 如何使用订户选项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2072591/

    10-11 09:31