Foros del Web » Programando para Internet » PHP » Zend »

pbSubHubbub con ZF2

Estas en el tema de pbSubHubbub con ZF2 en el foro de Zend en Foros del Web. Hola He estado viendo este asunto del pbSubHubbu y hay algunos detalles que aun no termino de comprender del todo, a ver si me ayudan. ...
  #1 (permalink)  
Antiguo 22/01/2013, 08:36
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
pbSubHubbub con ZF2

Hola
He estado viendo este asunto del pbSubHubbu y hay algunos detalles que aun no termino de comprender del todo, a ver si me ayudan.

He creado este "Action" donde me suscribo al Rss de un sitio, todo funciona bien, ya que se guarda en la base de datos.
Código PHP:
Ver original
  1. public function pbSubHubbubAction()
  2.     {
  3.         $dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
  4.         $table = new TableGateway('rss_subscription', $dbAdapter);
  5.         $storage = new \Zend\Feed\PubSubHubbub\Model\Subscription($table);
  6.  
  7.  
  8.         $subscriber = new \Zend\Feed\PubSubHubbub\Subscriber;
  9.         $subscriber->setStorage($storage);
  10.         $subscriber->addHubUrl('http://pubsubhubbub.appspot.com');
  11.         $subscriber->setTopicUrl('http://notizblog.org/feed/');
  12.         $subscriber->setCallbackUrl('http://mysite.com/rss/cron/callback');
  13.         $subscriber->subscribeAll();
  14.  
  15.  
  16.         $json = new JsonModel(array('status' => 'ok'));
  17.         return $json;
  18.     }

En la db genera el Siguiente registro
Código PHP:
id                 59f61b63192aa4d6561eae7e4da817d8        
topic_url          
http://notizblog.org/feed/    
hub_url            http://pubsubhubbub.appspot.com
created_time       2013-01-22 09:06:13            
lease_seconds      
432000            
verify_token       
3867d706987a1a3b1061b3930310b0a3246dee1a529b6e95ed3cc58018240f46        
secret             
:        
expiration_time    2013-01-27 09:08:00        
subscription_state 
verified 


Luego Implemento el callback
Código PHP:
Ver original
  1. public function callbackAction()
  2.     {
  3.  
  4.         $dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
  5.         $table = new TableGateway('rss_subscription', $dbAdapter);
  6.         $storage = new \Zend\Feed\PubSubHubbub\Model\Subscription($table);
  7.         $callback = new \Zend\Feed\PubSubHubbub\Subscriber\Callback;
  8.         $callback->setStorage($storage);
  9.  
  10.         $subscriptionKey = $this->params()->fromRoute('key');
  11.         $callback->setSubscriptionKey($subscriptionKey);
  12.         $callback->handle();
  13.         $callback->sendResponse();
  14.  
  15.         if ($callback->hasFeedUpdate()) {
  16.             $feedString = $callback->getFeedUpdate();
  17.             var_dump($feedString . "proceso");
  18.              //qui debe estar mi proceso
  19.         }
  20.     }

Esto es lo que no me queda muy claro, la url que le paso para probrar es
http://mysite.com/rss/cron/callback/...1eae7e4da817d8 pero no me muestra nada.

Como se supone que debe funcionar el callback? alguna Idea? o me perdí de algo
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com

Última edición por Genetix; 22/01/2013 a las 08:46
  #2 (permalink)  
Antiguo 22/01/2013, 12:50
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: pbSubHubbub con ZF2

No he utilizado el componente y conozco muy poco de la especificación de PubSubHubbub, dicho esto pregunto, que tipo de Request estas haciendo ?, porque mirando por arriba el código parece necesitar un POST.

PD: imagino que el código es a modo de ejemplo y que en realidad gran parte esta en un closure o Factory en el config service del modulo, verdad ?

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 22/01/2013, 14:01
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: pbSubHubbub con ZF2

En teoría debería funcionar con GET y POST
Según entiendo el componente se encarga de hacer el REQUEST, pero es es lo que no me queda muy claro

En el module.config.php solo existe este adicional, después no hay mucha magia
Código PHP:
Ver original
  1. 'subkey' => array(
  2.                         'type' => 'segment',
  3.                         'options' => array(
  4.                             'route' => '/cron/callback/:key',
  5.                             'defaults' => array(
  6.                                 '__NAMESPACE__' => 'Rss\Controller',
  7.                                 'controller' => 'cron',
  8.                                 'action' => 'callback',
  9.                             ),
  10.                         ),
  11.                     ),

__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #4 (permalink)  
Antiguo 22/01/2013, 15:09
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: pbSubHubbub con ZF2

Yo creo que a ti te llega un request notificando el contenido nuevo, y para esto tiene que ser POST, o al menos eso entiendo según

https://github.com/zendframework/zf2...llback.php#L91

y se sugiero que envuelvas en factories el código de los subscribers, el controller debería tener algo asi:

Código PHP:
Ver original
  1. public function callbackAction()
  2. {
  3.     //closure o factory que se encarga del assemble
  4.     $callback = $this->getServiceLocator()->get('application_subscriber_callback');
  5.     $subscriptionKey = $this->params()->fromRoute('key');
  6.     ...
  7. }
__________________
http://es.phptherightway.com/
thats us riders :)

Última edición por masterpuppet; 22/01/2013 a las 15:22
  #5 (permalink)  
Antiguo 24/01/2013, 07:50
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: pbSubHubbub con ZF2

Cita:
Yo creo que a ti te llega un request notificando el contenido nuevo, y para esto tiene que ser POST, o al menos eso entiendo según
Ese es el detalle, como verifico que me llega dicho request y que no este fallando ??
Ademas No se si el servicio envía el requets o no

Seguiré investigando a ver si doy con el problema.
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #6 (permalink)  
Antiguo 24/01/2013, 08:42
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: pbSubHubbub con ZF2

Para testear en vez de utilizar GET envía un POST a la url que estas indicando

http://mysite.com/rss/cron/callback/...1eae7e4da817d8

para esto puedes utilizar curl o bien algún plugin del browser que utilices, y si, se supone que el servicio que registraste(http://pubsubhubbub.appspot.com) te envía el request, evidentemente para que esto funcione tu app tiene que ser accesible.
__________________
http://es.phptherightway.com/
thats us riders :)

Última edición por masterpuppet; 24/01/2013 a las 08:56

Etiquetas: zf2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:18.