2

我正在尝试使用 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,然后收到带有 hub_challenge 和其他内容的对我的 callback.php 的“GET”响应。我遵循了教程建议的回显这个数字,因此,集线器将能够将更新推送到我的回调。

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
}

我不确定问题是出在回声部分还是之后。有没有人有类似的问题?我究竟做错了什么?

4

1 回答 1

1

我刚刚解决了这个问题。显然我使用的是不同的 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 ……

于 2014-12-13T01:42:28.090 回答