2010-10-02 2 views
8

Мне интересно, как реализовать PubSubHubbub на сайте PHP. Я этого не понимаю. Можете ли вы мне объяснить? У меня нет идеи. Издатель уведомляет подписчика и подписчика - мой сайт?Как реализовать PubSubHubbub?

<?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("PuSHSubscriber.php"); 

$hub_url = "http://pubsubhubbub.appspot.com"; 
$callback_url = "url to my site?"; 

$feed = "feed link"; 

// create a new subscriber 
$s = new Subscriber($hub_url, $callback_url); 

// subscribe to a feed 
$s->subscribe($feed); 
// unsubscribe from a feed 
//$s->unsubscribe($feed); 

?> 

Или на $ hub_url Должен ли я разместить свой концентратор?

ответ

14

Похоже, что вы подписчик, а это значит, что вы хотите получать уведомления об обновлениях в фиде. Вот процесс:

  1. Найти ступицу URL. В корме должен быть элемент <link> (или <atom:link>) с rel = "hub". В href содержится URL-адрес концентратора. Там много разных концентраторов!

  2. Реализация обратного вызова. Этот URL-адрес (который должен быть доступен извне (так, а не localhost!) Будет вызываться концентратором, когда новый контент доступен для вас. Он также должен реализовать механизм проверки (см. Ниже)

  3. Выполнение подписки запрос на концентратор: это запрос POST к URL-адресу концентратора (см. 1.) со следующими параметрами: hub.topic = hub.callback = hub.mode = subscribe hub.verify = sync (продолжать синхронизацию, так как это проще отладки).

  4. концентратор будет отправить запрос подтверждения на обратный вызов с hub.verify_token парами. Ваше приложение должно затем повторить эти параметры для подписки быть подтверждена.

  5. Если все в порядке, концентратор вернет 204, и вам будет хорошо. Если нет, он вернет 4XX, и вы должны проверить тело, поскольку оно включает в себя указания на то, что не удалось.

  6. Позже, после подтверждения подписки, вы получите POST-запросы с содержанием обновления в теле.

  7. (Вы должны повторно подписаться каждый день. Зависит от того, что ступица говорит вам фактическое время.)

Похоже, вы используете существующую библиотеку. Это должно выполнить все шаги сверху. Тем не менее, важно понять, что происходит под капотом, поэтому вы можете реализовать его самостоятельно. Это не так сложно.Убедитесь, что ваш обратный вызов доступен из «снаружи» и убедитесь, что $s->subscribe($feed); фактически не возвращает результат подозрительности, поскольку это поможет.

Если вам нужен более полный урок PubSubHubbub, check this one.

Удачи вам!

+0

Спасибо, но может ли этот URL-адрес концентратора быть моим собственным центром, а не на pubsubhubbub.appspot.com – lam3r4370

+0

Какая информация даст мне вызов pubsubhubbub.appspot.com на новый контент? – lam3r4370

+1

Новый контент :) –

1
  • $ hub_url является URL втулки 3 партии
  • $ topic_url является «кормить» вы подписавшись на
  • $ callback_url является URL на сервере, который должен пинги с новыми результатами, когда хаб получает их.

Надеюсь, что это поможет!

+0

ОК, Blogger - это pubsubhubbub-enabled. Я предоставляю URL-адрес канала для блогера, и у меня есть этот скрипт, но он не работает. subscribe ($ feed); // отписаться от подписки // $ s-> unsubscribe ($ feed); ?> – lam3r4370

+1

Приобретение подписчика должно быть реальным файлом на вашем сервере и может потребоваться полный URL-адрес (http: // ...) –

+1

. В любом случае вы также не подписываете подписку, это не будет сделано , –

Смежные вопросы