Как реализовать 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 | josh@eventvue.com
// 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, отметьте его.
Удачи!
- $hub_url - это URL стороннего хаба
- $topic_url - это фид, на который вы подписаны
- $callback_url - это URL-адрес вашего сервера, который должен проверяться новыми результатами по мере их получения концентратором.
Надеюсь, это поможет!