Pubsubhubub를 사용하여 실시간 RSS 피드를 가져 오려고합니다. 그 목적으로 PHP를 사용하고 있습니다.Pubsubhubub가 허브에서 "POST"응답을 얻습니다.
예를 들어 nextextweb에 가입했습니다.
$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
}
문제가 에코 부분 또는 그 이후인지 확실하지 않습니다. 비슷한 문제가있는 사람이 있습니까? 내가 도대체 뭘 잘못하고있는 겁니까?
게시물 처리기의'json_decode'를 제거하십시오. atom/rss 항목을 받아야하므로 문제가 될 수 있습니다. –
문제는 내 callback.php가 다시 호출되지 않는다는 것입니다. 이 조건들이 나오기 전에는 callback.php가 호출 된 시간을 저장하는 코드를 가지고 있으며, 첫 번째 "get"후에 아무 일도 일어나지 않습니다. –