Pubsubhubub得到" POST"来自枢纽的回应

时间:2014-12-09 06:55:29

标签: php pubsubhubbub

我试图使用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"使用hub_challenge和其他东西回复我的callback.php。我按照教程建议回显这个数字,因此,集线器将能够推动我的回调更新。

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
}

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

1 个答案:

答案 0 :(得分:1)

我刚刚解决了这个问题。显然我使用的是另一个topic_url,我使用的是这个链接:http://feeds.feedburner.com/TheBoyGeniusReport?format=xml。相反,请查看页面源并确保使用href内的链接。下面突出显示的链接是您应该使用的。

... xmlns:atom10 =" http://www.w3.org/2005/Atom"的rel ="自"类型="应用程序/ RSS + XML" HREF ="的 http://feeds.feedburner.com/TheBoyGeniusReport " ...