我正在尝试使用 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
}
我不确定问题是出在回声部分还是之后。有没有人有类似的问题?我究竟做错了什么?