2010-01-15 44 views
11

Şimdi Pubsubhubbub (ve tüm gerçek zamanlı şeyler hakkında) ile başladım, ancak Abone seçeneği ile sorun yaşıyorum. Ben PHP'de bir webapp geliştirmeye çalışıyorumAbone seçeneğini nasıl kullanırım?

: Abone Hub'a bir RSS (daha önce Yayınlandı) (http://pubsubhubbub.appspot.com/)

  1. ;
  2. Abonelik için Hub'dan bildirimleri (güncellemeleri) okuyun; başarılı! :(
I (Git'te) php to the Subscriber bir kütüphane var olduğunu doğrulamak

ancak eser en Abone yapamaz bu lib kullanarak (bir 409 hatası alıyorum!).

Bunu nasıl ?

+0

A 409 hatası * çakışma * ve - in pubsubhubbub - Abonelik doğrulaması başarısız olduğunda oluşur –

+0

Tamam, ben ödülünü açtım ama @ddluis'in sorusunu düzenleyemem, bu yüzden buraya soracağım. Ve bunu nasıl uygulayacağınız - http://github.com/lxbarth/PuSHSubscriber/ class: Bu kısmı anlamıyorum: Ana bilgisayar uygulamaları ile entegrasyon – lam3r4370

cevap

4

Bu eski soru bağlantılı PHP kütüphane ddluis olduğu için birçok kusuru vardır

Google Code wiki tavsiye PHP abone PuSHSubscriber geçerli:.

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

GÜNCELLEME: Ben orjinali ile birkaç uyumsuz değişiklikler yaptık http://github.com/bobdia/PuSHSubscriber

:

Ben PuSHSubscriber çatallı. Basit bir uygulama /example dizininde bulunabilir. Bu, sadece gösteri amaçlı olarak gerçek kullanım için değildir. Umarım faydalı bulursun.

+0

Ve neden olmasın http://pubsubhubbub.googlecode.com/ svn/trunk/subscriber_clients/php/subscriber.php? Daha basit! – lam3r4370

+0

Ve bu sınıfı tam olarak nasıl uygularım? Bu kısmı anlamıyorum: Ana bilgisayar uygulamaları ile bütünleşme – lam3r4370

+2

Bağlantılı OP'nin php sınıfı daha basit görünüyor, çünkü gerçekten çok fazla şey yapmıyor. PuSHSubscriber oldukça basittir ve aldığı bildirimleri saklama dışında ihtiyacınız olan her şeyi yapar. Bununla bir örnek uygulama yapmaya karar verdim, bu yüzden bir veya iki gün içinde tekrar kontrol edin ve herkesin kolayca anlayabileceği bir bağlantıyı yayınlayacağım. – bobdiaes

3

Ben ilk şey d deneyin Kütüphaneler hakkında bir fikir edin ve tam olarak bir abonenin bağlamında neler olduğunu anlamaya çalışın. Bütün bunları birlikte ele alan bir betik oluşturmak gerçekten çok kolay olmalı.

bir abone başvurusu 2 şey yapmanız gerekir:

  • susbcription onaylayın: göbek susbcriber amacını doğrular. Bu,
  • gelen bir ping isteği ile gelen ping anlaşma. Bu bir POST isteğidir.

Öyleyse başlayalım:

  1. web üzerinde bir yere bir script koyun göbekten istekleri GET için işlemek için balya olması gereken (bir güvenlik duvarı arkasında erişilebilir olmalıdır).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-
  2. Sen senaryo üzerinde gelen doğrulama isteği görmelisiniz: o sadece o yanıtın vücudunda alır ve 200
  3. komut satırından aşağıdaki Gönder döndürür hub.challenge param yankıları emin olun. İdeal (Adım 1 izledi, eğer hub.challenge yankı olmalı ve bu tüm güzel hub bir 204. alırsanız döndüğünü söylemeliyim göndermek bukle istemiyse bir 200

dönmek başka bir şey, tepki gövdesini kontrol, bu neyin yanlış gittiğini gösterir. daha sonra

...

  1. bir POST isteği alacak Senaryonuz. Bu yeni içeriğin bir bildirimdir!
  2. Bu POST isteğinin ham gövdesini (XML) ayrıştır, beslemeyi içerir, onl y yeni girişlerle.
  3. Ayrıştırılmış içerikle yapılması gerekenleri yapın (bir veritabanına kaydedin ... vb.).

Umarım bu yardımcı olur. Aboneliğinizin hatalarını ayıklamak için also use this tool numaralı telefonu kullanabilirsiniz.

+0

Bölüm 1'e ulaşamıyorum. "Hub'dan gelen GET isteklerini işlemek için balyalama yapılmalı" Burada PHP ile yapmam gereken bir şey var mı? Ve nasıl "Bu POST isteğinin ham gövdesini (XML) ayrıştırmak, sadece yeni girişlerle beslemeyi içerir." - SimpleXML ile? – lam3r4370

+0

Eh, hub komut dosyasına HTTP GET isteği gerçekleştirecek, bu nedenle bu betik web'den "erişilebilir" olmalıdır. –

+0

Ve evet, POST isteğinin gövdesini ayrıştırmak için simpleXML'i kullanabilirsiniz. –

İlgili konular