Я пытаюсь использовать Pubsubhubub для обновления RSS-каналов в реальном времени. Я использую PHP для этой цели.
Я подписался на thenextweb в качестве примера;
$hub_url = "http://pubsubhubbub.appspot.com/";
$callback_url = "http://xx.com/rss/callback.php";
$feed = "http://feeds2.feedburner.com/thenextweb";
$sub = new Subscriber($hub_url, $callback_url);
$status = $sub->subscribe($feed);
Я получаю, что концентратор возвращает код 202, и после этого «GET» отвечает на мой callback.php с помощью hub_challenge и других вещей. Я следовал советам повторения этого числа в уроках, и, следовательно, концентратор сможет обновлять мой обратный вызов.
if ($method == 'GET' && $_GET['hub_mode'] == 'subscribe') {
$challenge = $_GET['hub_challenge'];
header('HTTP/1.1 200 "OK"', null, 200);
header('Content-Type: text/plain');
echo $challenge;
}
Вот как я повторяю номер вызова. Проблема здесь в том, что я не получаю никаких других сообщений от концентратора, хотя у меня есть условие для обработки любого сообщения POST в моем обратном вызове.
else if ($method == 'POST') {
$updates = json_decode(file_get_contents("php://input"), true);
//doing stuff with the data here
}
Я не уверен, если проблема с эхо-частью или после этого. У кого-нибудь есть похожие проблемы? Что я делаю неправильно?
Я только что решил проблему. Видимо, я использовал другой topic_url, я использовал эту ссылку: http://feeds.feedburner.com/TheBoyGeniusReport?format=xml. Вместо этого просмотрите исходный код страницы и убедитесь, что вы используете ссылку внутри href. Выделенная ссылка ниже — это то, что вы должны использовать.
… xmlns: atom10 = «http://www.w3.org/2005/Atom» rel = «self» type = «application / rss + xml» HREF =»http://feeds.feedburner.com/TheBoyGeniusReport«…
Других решений пока нет …