10

Rails を使用して pubsub 対応のサブスクライバー アプリをセットアップする際に問題があります。私は現在、オープン ハブ pubsubhubbub.appspot.com を購読しており、アプリケーションのエンドポイントへの ping を受信して​​います。(現在、エンドポイントがpingされるたびに増加するカウンターを作成しました)。しかし、POST から生の POST 本文の内容を抽出する方法については理解できません。私は pubsub が初めてで、試してみたいと思っています。このブログ投稿に出くわしましたが、言語固有ではありません。


出典: Joseph Smarr: PubSubHubbub サブスクライバー サポートの実装: ステップバイステップ ガイド。http://josephsmarr.com/2010/03/01/implementing-pubsubhubbub-subscriber-support-a-step-by-step-guide/

これで支払いの準備が整いました。購読しているブログに新しいコンテンツが追加されるたびに、魔法のようにイーサから ping を受け取ります! 追加のクエリ パラメータを追加せずに、指定したコールバック URL へのインバウンド リクエストを受信します (つまり、hub.mode パラメータが含まれないため、これは ping であり、検証ではないことがわかります)。代わりに、サブスクライブしたフィードの新しいエントリは、ATOM フィードの場合は application/atom+xml、RSS フィードの場合は application/rss+xml のリクエスト Content-Type を使用して、リクエストの POST 本文に直接含まれます。選択したプログラミング言語によっては、生の POST 本文の内容を抽出する方法を理解する必要があります。たとえば、PHP では、特別なファイル名 php://input を fopen して読み取ります。

どんな助けでも大歓迎です。

4

1 に答える 1

6

あなたは言いませんでしたが、Rails 3.x を実行していると思いますか?

生の POST 本文を取得するには、コントローラーで request.raw_post を使用するだけです。これにより、リクエスト パラメーター文字列のような長い文字列が得られます: some_var=something&something_else=something_else... を解析して、必要なものを取得できます。

ただし、着信リクエストの開発ログを見て、params ハッシュが適切なオプションではないかどうかを確認してください。サービスは、上記の some_var などの変数名でデータをポストする必要があり、params ハッシュは、そのデータのみを含む params[:some_var] を保持します。つまり、自分で掘り下げる必要はありません。

于 2012-06-25T09:47:26.260 に答える