2010-03-09 12 views
10

Tengo problemas para configurar una aplicación de suscripción habilitada para pubsub utilizando rieles. Actualmente me he suscrito al hub abierto pubsubhubbub.appspot.com y recibo pings en el punto final de mi aplicación. (a partir de ahora he creado un contador que se incrementa cada vez que se puntea el punto final). Pero no puedo entender cómo extraer los contenidos del cuerpo del POST en bruto del POST. Soy nuevo en pubsub y estoy ansioso por experimentar con él. Me encontré con esta publicación de blog, pero no es específica de un idioma.Pubsubhubbub en rieles. ¿Cómo extraer el contenido del cuerpo de POST sin procesar de la solicitud de POST?


Fuente: Joseph Smarr: el apoyo de suscriptores de aplicación PubSubHubbub: Una guía paso a paso. http://josephsmarr.com/2010/03/01/implementing-pubsubhubbub-subscriber-support-a-step-by-step-guide/

Ahora ya está listo para los pings de pay-out-mágicamente que reciben de el éter cada vez que el blog en el que haya suscrito a tiene nuevo contenido! Usted recibe las solicitudes entrantes a su dirección URL de devolución de llamada especificada sin parámetros de consulta adicionales añadido (es decir, usted sabrá que es un ping y no una verificación debido a que no habrá ningún parámetro hub.mode incluido). En cambio, las nuevas entradas de la alimentación suscrito se incluirán directamente en el cuerpo de POST de la solicitud , con una solicitud Content-Type de application/atom + xml para Atom y aplicación/rss + xml para RSS feeds. Dependiendo de su programación idioma de su elección, necesitará averiguar cómo extraer el contenido de cuerpo crudo POST . Por ejemplo, en PHP se abriría el nombre de archivo especial php: // input para leerlo.

Cualquier ayuda sería muy apreciada.

+0

qué tal http://apidock.com/rails/ActionDispatch/Request/raw_post – hellvinz

+0

¿Es la respuesta lo que buscas? – lulalala

Respuesta

6

¿No dijo pero estoy asumiendo que está ejecutando Rails 3.x?

Para obtener el cuerpo de POST sin procesar, simplemente use request.raw_post en su controlador. Esto le dará una cadena larga que se parece a una cadena de parámetros de solicitud: some_var = something & something_else = something_else ... que luego puede analizar para obtener lo que desea.

Sin embargo, fíjese en los registros de desarrollo de una solicitud entrante y vea si el hash de parámetros no es una mejor opción para usted. El servicio debe publicar los datos bajo algún nombre de variable, como some_var arriba, y el hash de parámetros contendrá un params [: some_var] que contiene solo esos datos. No es necesario que lo entiendas tú mismo en otras palabras.

Cuestiones relacionadas