Как реализовать PubSubHubbub?

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

    <?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 я должен опубликовать свой хаб?

Ответы на вопрос(2)

Решение Вопроса

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

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

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

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

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

Если все в порядке, концентратор вернет 204, и вы готовы. Если нет, он вернет 4XX, и вы должны проверить тело, поскольку оно содержит признаки того, что не удалось.

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

(Вы должны переподписываться каждый день. Фактическое время зависит от того, что вам скажет хаб.)

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

Если вам нужен более полный учебник PubSubHubbub,проверьте это.

Удачи!

 Julien Genestoux03 окт. 2010 г., 17:19
И никакой URL-адрес хаба не должен быть назначенным хабом ... потому что хаб не может знать, был ли обновлен фид, и издатель не сообщил об этом!
 Julien Genestoux03 окт. 2010 г., 17:19
Новый контент :)
 lam3r437003 окт. 2010 г., 17:29
И еще один. Будет ли хаб возвращать только новый контент, или он вернет и ссылку на обновленный канал?
 lam3r437003 окт. 2010 г., 13:36
Какая информация даст мне звонок на pubsubhubbub.appspot.com о новом контенте?
 Julien Genestoux03 окт. 2010 г., 21:01
Это подтолкнет вас к новому контенту, как канал Atom / RSS, так что да, он будет содержать любую ссылку. Может быть, лучше всего увидеть самому :)
 lam3r437003 окт. 2010 г., 12:10
Спасибо, но может ли этот URL хаба быть моим собственным хабом, а не на pubsubhubbub.appspot.com
 lam3r437003 окт. 2010 г., 17:25
Т.е. те, кто находится на pubsubhubbub.appspot.com, в порядке, если пользователь поместит ссылку с rel = "hub" и href = "pubsubhubbub.appspot.com" и уведомит ее о новом контенте?
$ hub_url URL стороннего хаба$ topic_url это канал, на который вы подписаны$ callback_url URL-адрес вашего сервера, который должен проверяться новыми результатами по мере их получения концентратором.

 lam3r437002 окт. 2010 г., 21:33
Это не будет работать на localhost?
 Jordan Feldstein02 окт. 2010 г., 21:32
В любом случае, вы также отказываетесь от подписки, это не поможет.
 lam3r437002 окт. 2010 г., 21:15
Хорошо, Blogger поддерживает pubsubhubbub. Я даю URL фида блоггера, и у меня есть этот скрипт, но он не работает <? Php include ("PuSHSubscriber.php"); $ hub_url = "pubsubhubbub.appspot.com"; $ callback_url =" subscriber_example.php "; $ feed ="hubexample.blogspot.com/feeds/posts/default"; // создать нового подписчика $ s = new Subscriber ($ hub_url, $ callback_url); // подписаться на фид $ s-> subscribe ($ feed); // отписаться от фида // $ s-> unsubscribe ($ feed);?>
 Jordan Feldstein02 окт. 2010 г., 21:32
subscriber_example.php должен быть реальным файлом на вашем сервере, и может потребоваться полный URL (http: // ...)
 Jordan Feldstein04 окт. 2010 г., 01:03
Нет, это не будет работать с localhost. Если ваш сайт - pubsubhubbub.appspot.com, подумайте о том, что вы говорите, с его точки зрения ... Вы говорите, что когда приходят новые данные, обязательно сообщите localhost, что есть новые данные. Ну, это говорит: хорошо, я собираюсь отправить эти новые данные на localhost, но что касается этого, localhost означает отправку новых данных себе, что означает, что вы их никогда не получите. Вы должны указать удаленному серверу (концентратору), как отправить данные обратно на ваши фактические серверы. Чтобы сделать это, вам нужен полный URL, который укажет концентратор обратно на ваш сервер.

Ваш ответ на вопрос