Я хочу получить фиды с superfeedr.com, используя PubSubHubbub api, но мой ответ на обратный вызов не работает. Я не могу связаться по моему обратному вызову. Вот мой код
class Superfeedr
{
private $topic;
private $callback;
private $hub = 'http://superfeedr.com/hubbub';
public $verbose = false;
function __construct($topic, $callback, $hub='')
{
$this->topic = $topic;
$this->callback = $callback;
if ($hub) {
$this->hub = $hub;
}
}
public function request($mode)
{
$post_data = array (
'hub.mode' => 'retrieve',
'hub.callback' => urlencode($this->callback),
'hub.topic' => urlencode($this->topic)
);foreach ($post_data as $key=>$value) {
$post_data_string .= $key.'='. $value.'&';
}$url =$this->hub .'?'.$post_data_string;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
curl_setopt($ch, CURLOPT_USERPWD, 'testdata:1234');
curl_setopt($ch, CURLOPT_BUFFERSIZE, 4096);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 25);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$output = curl_exec($ch);
}
}
и мой файл php
#Retrieve.php
$superfeedr = new Superfeedr('http://feeds.bbci.co.uk/news/world/asia/rss.xml',
'mydomainurl.com/callback',
'https://push.superfeedr.com');
$superfeedr->verbose = true;
$data = $superfeedr->request('list');
Здесь я хочу сообщить вам, что мой URL обратного вызова является одним из моих действий Laravel. Который
public function callback(Request $request)
{
\Log::info("Testing before callback");
if(isset($_Get["hub_challenge"])){
echo $_Get["hub_challenge"];
return;
}
// Just for testing
\DB::table('test')->insert(['name' => "Test callback data. Please ignore"]);
}
Но ничего не происходит в моем лог-файле и базе данных тоже. У кого-нибудь есть идеи, тогда, пожалуйста, дайте мне знать, что здесь не так. Благодарю.
Задача ещё не решена.
Других решений пока нет …