10

私は今Pubsubhubbub(そしてすべてリアルタイムのもの)から始めましたが、Subscriberオプションで問題が発生しています。

PHPで次の目的でWebアプリを開発しようとしています。

  1. RSS(以前に公開された)をハブ(http://pubsubhubbub.appspot.com/)にサブスクライブします。
  2. サブスクリプションのハブからの通知(更新)を読み取ります。成功せずに!!! :(

サブスクライバーへのphp (Git内)にライブラリーが存在することを確認しましたが、このライブラリーを使用してもサブスクライブを機能させることはできません(409エラーが発生します!)。

これどうやってするの?

4

3 に答える 3

3

私が最初に試みることは、ライブラリのことは忘れて、サブスクライバーのコンテキストで何が起こっているかを正確に理解しようとすることです。これらすべてをまとめて処理するスクリプトを作成するのは、非常に簡単です。

サブスクライバー アプリケーションは、次の 2 つのことを行う必要があります。

  • サブクリプションを承認する: ハブは、サブスクリバーの意図を確認します。GETリクエストです
  • 着信 ping を処理します。POSTリクエストです。

それでは始めましょう:

  1. ハブからの GET 要求を処理するためにベールが必要な Web 上のどこかにスクリプトを配置します (ファイアウォールの背後からアクセスできる必要があります)。応答の本文で取得し、200 を返すパラメーターのみをエコーすることを確認してください。hub.challenge
  2. コマンド ラインから次のコマンドを送信します。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-
  3. スクリプトに着信検証要求が表示されます。理想的には (ステップ 1 に従った場合、hub.challenge をエコーし​​て 200 を返す必要があります。

これで問題がなければ、送信する curl リクエストは、ハブが 204 を返したことを通知するはずです。それ以外の場合は、レスポンスの本文を確認してください。問題の原因が示されます。

後で...

  1. スクリプトは POST リクエストを受け取ります。新コンテンツのお知らせです!
  2. この POST 要求の未加工の本文 (XML) を解析します。これにはフィードが含まれ、新しいエントリのみが含まれます。
  3. 解析されたコンテンツに対して必要なことは何でも行います (データベースへの保存など)。

これが役立つことを願っています。このツールを使用して、ヘルプが必要なサブスクリプションをデバッグすることもできます。

于 2010-10-17T09:03:32.083 に答える
3

これは古い質問で、リンク先の PHP ライブラリ ddluis には多くの欠陥があります。

Google Code wiki で推奨される PHP サブスクライバーは、PuSHSubscriber です。

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

アップデート:

PuSHSubscriber をフォークしました: http://github.com/bobdia/PuSHSubscriber

オリジナルと互換性のない変更をいくつか加えました。簡単な実装は/exampleディレクトリにあります。これはデモンストレーションのみを目的としており、実際に使用するためのものではありません。お役に立てば幸いです。

于 2010-10-05T21:27:01.043 に答える
1

役立つかもしれないいくつかのコードと、適切なドキュメント:

フィード アグリゲーターの例:

于 2010-10-17T08:23:22.247 に答える