2010-01-15 7 views
11

J'ai commencé maintenant avec Pubsubhubbub (et tout sur les choses en temps réel), mais j'ai des problèmes avec l'option Subscriber.Comment utiliser l'option abonné?

Je suis en train de développer une application web en PHP pour:

  1. Abonnez-vous un flux RSS (déjà publié) au moyeu (http://pubsubhubbub.appspot.com/);
  2. Lire les notifications (mises à jour) du Hub pour l'abonnement; sans réussir !!! :(

Je confirme que existe une bibliothèque php to the Subscriber (Git), mais en utilisant cette lib ne peut pas faire le travail de abonner (obtenir une erreur 409!).

Comment puis-je faire ?

+0

Une erreur 409 est un * conflit * et - dans pubsubhubbub - se produit lorsque la vérification d'abonnement échoue –

+0

OK, j'ai ouvert la prime, mais je ne peux pas éditer la question de @ddluis, donc je vais demander ici. Et comment exactement mettre en œuvre ce - http://github.com/lxbarth/PuSHSubscriber/ classe? Je ne comprends pas cette partie: Intégration avec les applications hôtes – lam3r4370

Répondre

4

Ceci est une question ancienne et la ddluis bibliothèque PHP liés à a de nombreux défauts

l'abonné PHP recommandé dans le wiki Google code est PuSHSubscriber.

http://github.com/lxbarth/PuSHSubscriber/

MISE À JOUR:

Je fourchue PuSHSubscriber: http://github.com/bobdia/PuSHSubscriber

J'ai fait quelques changements incompatibles avec l'original. Une implémentation simple peut être trouvée dans le répertoire /example. Ceci n'est pas destiné à une utilisation réelle, uniquement à des fins de démonstration. J'espère que tu trouves cela utile.

+0

Et pourquoi pas http://pubsubhubbub.googlecode.com/ svn/trunk/subscriber_clients/php/subscriber.php? C'est plus simple! – lam3r4370

+0

Et comment exactement mettre en œuvre la classe ci-dessus? Je ne comprends pas cette partie: Intégration avec les applications hôtes – lam3r4370

+2

La classe php que l'OP lié à semble plus simple, car il ne fait pas beaucoup. PuSHSubscriber est assez simple et fait tout ce dont vous avez besoin, sauf le stockage des notifications qu'il reçoit. J'ai décidé de faire un exemple de mise en œuvre avec, donc revenez dans un jour ou deux et je posterai un lien vers quelque chose que tout le monde peut facilement comprendre. – bobdiaes

3

La première chose que je d essayer est fo renseignez-vous sur les bibliothèques et essayez de comprendre exactement ce qui se passe dans le contexte d'un abonné exactement. Ce devrait être vraiment simple de construire un script qui gère tout cela ensemble.

Une demande d'abonné doit faire 2 choses:

  • Reconnaissez le susbcription: le moyeu vérifiera l'intention du susbcriber. C'est une requête GET
  • Traiter les pings entrants. C'est une demande POST.

Alors commençons:

  1. Mettez un script quelque part sur le web (il doit être accessible derrière un pare-feu) qui doit être la balle pour traiter les requêtes GET à partir du centre.Assurez-vous qu'il que fait écho à la hub.challenge param qu'il pénètre dans le corps de la réponse et retourne 200.
  2. Envoyer les éléments suivants de ligne de commande: curl -X POST http://pubsubhubbub.appspot.com/ -d'hub.mode=subscribe' -d'hub.verify=sync' -d'hub.topic=http://the.feed.url' -d'hub.callback=http://the.script.url' -D-
  3. Vous devriez voir une demande de vérification entrant sur le script. Idéalement (si vous avez suivi l'étape 1, il doit écho à la hub.challenge et retourner une 200.

Si cela était bien la demande boucle que vous envoyez devrait vous dire que le centre a rendu un 204. Si vous obtenez toute autre chose, vérifier le corps de la réponse, il vous indiquera ce qui a mal tourné.

plus tard ...

  1. Votre script obtenir une requête POST. Ceci est une notification de nouveau contenu!
  2. Analyser le corps brut (XML) de cette requête POST, il contient le flux, onl y avec les nouvelles entrées.
  3. Faire tout ce qui doit être fait avec le contenu analysé (sauvegarder dans une base de données ... etc).

J'espère que cela aide. Vous pouvez also use this tool pour déboguer votre abonnement de vous avez besoin d'aide.

+0

Je ne comprends pas la partie 1. "ce qui doit être la balle à gérer pour recevoir des requêtes du concentrateur" Ai-je quelque chose à faire ici avec PHP? Et comment "analyser le corps brut (XML) de cette requête POST, il contient le flux, uniquement avec les nouvelles entrées." - avec simpleXML? – lam3r4370

+0

Eh bien, le concentrateur effectuera une requête HTTP GET pour votre script, ce script doit donc être "accessible" sur le Web. –

+0

Et oui, vous pouvez utiliser simpleXML pour analyser le corps de la requête POST. –

Questions connexes