protected function _subscribe($topic) { try { $feed = Zend_Feed_Reader::import($topic); } catch (Zend_Exception $e) { return false; } /** * Must use the URI of the feed contained in the feed itself in * case the original is no longer valid (e.g. feed moved and we just * followed a redirect to the new URI) */ $feedTopicUri = $feed->getFeedLink(); if (empty($feedTopicUri)) { $feedTopicUri = $topic; } /** * The feed may advertise one or more Hub Endpoints we can use. * We may subscribe to the Topic using one or more of the Hub * Endpoints advertised (good idea in case a Hub goes down). */ $feedHubs = $feed->getHubs(); if (is_null($feedHubs) || empty($feedHubs)) { return false; } /** * Carry out subscription operation... */ $storage = new Zend_Feed_Pubsubhubbub_Storage_Filesystem(); $storage->setDirectory(APPLICATION_ROOT . '/store/subscriptions'); $options = array('topicUrl' => $feedTopicUri, 'hubUrls' => $feedHubs, 'storage' => $storage, 'callbackUrl' => 'http://hub.survivethedeepend.com/callback', 'usePathParameter' => true, 'authentications' => array('http://superfeedr.com/hubbub' => array('padraicb', 'password'))); $subscriber = new Zend_Feed_Pubsubhubbub_Subscriber($options); $subscriber->subscribeAll(); /** * Do some checking for errors... */ if (!$subscriber->isSuccess()) { var_dump($subscriber->getErrors()); exit; } return true; }
require_once 'Zend/Feed/Reader.php'; //$topic = 'http://chregu.tv/blog/atom.xml'; $topic = 'http://www.planet-php.net/atom/'; $feed = Zend_Feed_Reader::import($topic); $feedTopicUri = $feed->getFeedLink(); /** * The feed may advertise one or more Hub Endpoints we can use. * We may subscribe to the Topic using one or more of the Hub * Endpoints advertised (good idea in case a Hub goes down). */ $feedHubs = $feed->getHubs(); /** * Carry out subscription operation... */ require_once "Zend/Feed/Pubsubhubbub/Storage/Filesystem.php"; $storage = new Zend_Feed_Pubsubhubbub_Storage_Filesystem(); $storage->setDirectory(R2T_PROJECT_DIR . "/tmp"); $options = array('topicUrl' => $feedTopicUri, 'hubUrls' => $feedHubs, 'storage' => $storage, 'callbackUrl' => 'http://' . $_SERVER['HTTP_HOST'] . '/rss2twi/callback.php', 'usePathParameter' => true, 'authentications' => array()); require_once "Zend/Feed/Pubsubhubbub/Subscriber.php"; $subscriber = new Zend_Feed_Pubsubhubbub_Subscriber($options); $subscriber->subscribeAll(); /** * Do some checking for errors... */ if (!$subscriber->isSuccess()) { var_dump($subscriber->getErrors()); exit; print "<br/>ERROR"; } else { error_log("SEEMS TO BE OK"); }
protected function _checkPubsubEnabled(Zend_Feed_Reader_FeedAbstract $feed) { if (!$feed->getHubs()) { return; } $hubs = $feed->getHubs(); $sub = new Zend_Feed_Pubsubhubbub_Subscriber(); $sub->setStorage(Doctrine_Core::getTable('Zfplanet_Model_Subscription')); $sub->addHubUrls($hubs); $sub->setTopicUrl($feed->getFeedLink()); $sub->usePathParameter(); $sub->setCallbackUrl($this->_getCallbackUri()); $sub->subscribeAll(); }