2012-03-29 15 views
5

Estoy tratando de usar el protocolo PSHB para recibir notificaciones de mis alertas de Google. Estoy usando el código encontrado here. Sin embargo, no me queda claro cómo implementar la devolución de llamada (o punto final).Implementación de devolución de llamada del suscriptor Pubsubhubbub en PHP

¿Alguien puede proporcionar un ejemplo trivial que muestre cómo puedo acceder a los datos que se ha enviado a mi punto final?

A (ligeramente modificada) fragmento del código de Google sigue a continuación:

<?php 

// simple example for the PHP pubsubhubbub Subscriber 
// as defined at http://code.google.com/p/pubsubhubbub/ 
// written by Josh Fraser | joshfraser.com | [email protected] 
// Released under Apache License 2.0 

include("subscriber.php"); 

$hub_url = "http://pubsubhubbub.appspot.com"; 
$callback_url = "http://www.example.com/mycallback.php"; // <- how to implement this ? 

[[Editar]]

he añadido a continuación algunos pseudocódigo, para ayudar a aclarar la cuestión más .. .

// Implementation of mycallback.php 
<?php 
    $pubsub_post_vars = $_POST[WHAT_NAME_AM_I_LOOKING_FOR]; //what's the name of the POST var? 
    // How do I get to the 'good stuff? 
    $feed_id = $pubsub_post_vars[SOME_VARIABLE] 
    $feed_title = $pubsub_post_vars[ANOTHER_VARIABLE] 
    $contents = $pubsub_post_vars[YET_ANOTHER_VARIABLE] 
    $author  = $pubsub_post_vars[YET_ANOTHER_VARIABLE_1] 
    $perma_link = $pubsub_post_vars[YET_ANOTHER_VARIABLE_2] 
    $pub_date = $pubsub_post_vars[YET_ANOTHER_VARIABLE_3] 
?> 

que se dan cuenta de que el enfoque (arriba) puede ser incorrecto completa, como sospecho que es un documento RSS/ATOM que es PO STED. Sin embargo, algún código esqueleto como el anterior debería ser suficiente para comenzar, de modo que pueda extraer elementos como la identificación del feed, el título y el contenido publicado ... etc.

+0

¿ha encontrado la solución? ¿Te importa compartir conmigo? También tengo un problema con la implementación de devolución de llamada. Muchas gracias, tu ayuda es muy apreciada. – overshadow

Respuesta

2

Bueno, la forma de implementarlo realmente depende en lo que quieres lograr con eso. Pero, en general, hay 2 cosas que su devolución de llamada tiene que manejar:

  • Verificación de intención
  • Manejo de notificaciones

para la verificación de Intención, su devolución de llamada tiene que hacerse eco de la hub.challenge parámetro, si realmente desea la suscripción para ese feed específico.

Para el manejo de la notificación, su devolución de llamada probablemente necesite verificar la validez (firma), si usó un secreto al suscribir y, más tarde, necesita leer y guardar el contenido del cuerpo.

[ACTUALIZAR] Tenga cuidado, la notificación no se incluirá en ninguna variable POST, será el cuerpo completo en sí (accesible a través de $request_body = @file_get_contents('php://input');). POST vars generalmente son analizados por PHP desde el cuerpo. En este contexto, desea acceder al cuerpo sin procesar. A continuación, podrá extraer todos los vars que esté buscando del XML (RSS o Atom) que se le envió.

+0

Hola, sí, sé que debería ser fácil de hacer, de ahí mi frustración por no poder averiguar cómo hacerlo :). Por favor mira mi pregunta actualizada ¡Gracias! –

Cuestiones relacionadas