2010-03-09 14 views
10

Ho problemi durante la configurazione di un'app per abbonati abilitata per pubsub utilizzando i binari. Al momento sono iscritto all'hub open pububhubbub.appspot.com e sto ricevendo ping sull'endpoint della mia applicazione. (A partire da ora ho creato un contatore che incrementa ogni volta che il punto finale viene eseguito il ping). Ma non sono in grado di capire come estrarre il contenuto del corpo POST non elaborato dal POST. Sono nuovo di Pubub e sono desideroso di sperimentarlo. Mi sono imbattuto in questo post del blog ma non è specifico per la lingua.Pubsubhubbub su Rails. Come estrarre il contenuto del corpo POST non elaborato dalla richiesta POST?


Fonte: Joseph Smarr: supporto abbonato Implementazione PubSubHubbub: Una guida passo-passo. http://josephsmarr.com/2010/03/01/implementing-pubsubhubbub-subscriber-support-a-step-by-step-guide/

Ora siete pronti per il ping pay-out-magicamente che ricevono dal l'etere ogni volta che il blog che hai sottoscritto ha nuovi contenuti! Potrai ricevere le richieste in entrata al tuo URL callback specificato senza alcun ulteriori parametri di ricerca aggiunto (cioè saprete che è un rumore metallico e non una verifica, perché non ci saranno qualsiasi parametro hub.mode incluso). Invece, le nuove voci del mangime sottoscritto saranno inclusi direttamente nel corpo POST della richiesta , con una richiesta Content-Type di application/atom + xml per Atom e application/rss + xml per RSS feed. A seconda della tua lingua di programmazione , dovrai digitare come estrarre il contenuto del corpo POST non elaborato. Ad esempio, in PHP si dovrebbe trovare il nome file speciale php: // input per leggerlo.

Qualsiasi aiuto sarebbe molto apprezzato.

+0

che dire di http://apidock.com/rails/ActionDispatch/Request/raw_post – hellvinz

+0

La risposta è ciò che state cercando? – lulalala

risposta

6

Non hai detto, ma presumo che tu stia utilizzando Rails 3.x?

Per ottenere il corpo POST raw, è sufficiente utilizzare request.raw_post nel controller. Questo ti darà una lunga stringa che assomiglia a una stringa di parametri di richiesta: some_var = qualcosa & something_else = something_else ... che puoi quindi analizzare per ottenere ciò che desideri.

Tuttavia, esaminare i registri di sviluppo per una richiesta in arrivo e verificare se l'hash params non è un'opzione migliore per l'utente. Il servizio dovrebbe pubblicare i dati sotto il nome di qualche variabile, come some_var sopra, e l'hash params conterrà un parametro [: some_var] contenente solo quei dati. In altre parole, non è necessario che lo scavassi da solo.