2012-03-29 13 views
5

Sto tentando di utilizzare il protocollo PSHB per ricevere notifiche sui miei avvisi Google. Sto usando il codice trovato here. Tuttavia, non mi è chiaro come implementare il callback (o endpoint).Implementazione callback di sottoscrizione di Pubsubhubb in PHP

Qualcuno può fornire un esempio banale che mostra come posso accedere ai dati che sono stati inviati al mio endpoint?

A (leggermente modificato) frammento di codice Google segue qui sotto:

<?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 ? 

[[Edit]]

Ho aggiunto un po 'di pseudocodice di seguito, per contribuire a chiarire ulteriormente la questione .. .

// 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] 
?> 

mi rendo conto che l'approccio (sopra) può essere completa sbagliato, come ho il sospetto che si tratta di un documento RSS/ATOM che è PO STED. Tuttavia, un codice scheletro come quello sopra dovrebbe essere sufficiente per iniziare, in modo da poter estrarre cose come id, titolo e contenuto pubblicato ... ecc.

+0

hai trovato la soluzione? Ti dispiace condividere con me? Ho anche problemi con l'implementazione della richiamata. Grazie mille, il tuo aiuto è molto apprezzato. – overshadow

risposta

2

Bene, il modo di implementarlo dipende molto su quello che vuoi ottenere con esso. Ma in generale, ci sono 2 cose il callback deve gestire:

  • verifica di intenti
  • Trattamento delle notifiche

per la verifica di intenti, il callback deve riecheggiare il hub.challenge parametro, se vuoi davvero la sottoscrizione per quel feed specifico.

Per la gestione della notifica, il callback probabilmente deve verificare la validità (firma), se hai usato un segreto quando si sospende e, successivamente, è necessario leggere e salvare il contenuto del corpo.

[UPDATE] Attenzione, la notifica non sarà inclusa in nessuna variabile POST, sarà l'intero corpo stesso (accessibile tramite $request_body = @file_get_contents('php://input');). I vars del POST sono solitamente analizzati da PHP dal corpo. In questo contesto, si desidera accedere al corpo grezzo. Sarai quindi in grado di estrarre tutti i vars che stai cercando dall'XML (RSS o Atom) pubblicato su di te.

+0

Ciao, sì, so che dovrebbe essere facile da fare - da qui la mia frustrazione di non essere in grado di capire come farlo :). Si prega di vedere la mia domanda aggiornata. Grazie! –

Problemi correlati