/** Retrieve tokens (already generated elsewhere) * @access private * @return object $tokenList */ public function getTokens() { if (!($tokenList = $this->_cache->load('latestweets'))) { $tokens = new OauthTokens(); $tokenList = $tokens->fetchRow($tokens->select()->where('service = ?', 'twitterAccess')); $this->_cache->save($tokenList, 'latestweets'); } return $tokenList; }
/** Request a token from Yahoo * @return string $url The formed url for yahoo oauth request to be redirected to in controller. */ public function request() { $config = array('version' => '1.0', 'requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER, 'signatureMethod' => 'HMAC-SHA1', 'callbackUrl' => self::SITEYAHOOCALLBACK, 'siteUrl' => self::OAUTHYAHOO, 'consumerKey' => $this->_consumerKey, 'consumerSecret' => $this->_consumerSecret); $tokens = new OauthTokens(); $tokenexists = $tokens->fetchRow($tokens->select()->where('service = ?', 'yahooAccess')); if (is_null($tokenexists)) { $consumer = new Zend_Oauth_Consumer($config); $token = $consumer->getRequestToken(); $session = new Zend_Session_Namespace('yahoo_oauth'); $session->token = $token->getToken(); $session->secret = $token->getTokenSecret(); $urlParams = $token->getResponse()->getBody(); $url = self::OAUTHYAHOOREQ . $urlParams; return $url; } else { throw new Pas_Yql_Exception('Token exists'); } }
/** Create the access token and save to database * */ public function access() { $config = array('callbackUrl' => self::CALLBACKURL, 'siteUrl' => 'http://twitter.com/oauth', 'consumerKey' => $this->_config->webservice->twitter->consumerKey, 'consumerSecret' => $this->_config->webservice->twitter->consumerSecret); $consumer = new Zend_Oauth_Consumer($config); $tokens = new OauthTokens(); $token = $tokens->fetchRow($tokens->select()->where('service = ?', 'twitterRequest')); // Get access token if (!is_null($token)) { $accessToken = $consumer->getAccessToken(Zend_Controller_Front::getInstance()->getRequest()->getQuery(), unserialize($token['accessToken'])); $oauth_token = $accessToken->getToken(); $tokenRow = $this->createRow(); $tokenRow->service = 'twitterAccess'; $tokenRow->created = Zend_Date::now()->toString('YYYY-MM-dd HH:mm:ss'); $tokenRow->accessToken = serialize($accessToken); $tokenRow->save(); return true; } else { throw new Pas_Yql_Exception('Invalid access. No token provided.'); } }
public function getTotalViews($date = NULL) { $tokens = new OauthTokens(); $tokenes = $tokens->fetchRow($tokens->select()->where('service = ?', 'flickrAccess')); $instance = unserialize($tokenes->accessToken); $oauthOptions = array('requestTokenUrl' => 'http://www.flickr.com/services/oauth/request_token', 'accessTokenUrl' => 'http://www.flickr.com/services/oauth/access_token', 'userAuthorisationUrl' => 'http://www.flickr.com/services/oauth/authorize', 'version' => '1.0', 'signatureMethod' => 'HMAC-SHA1', 'consumerKey' => $this->_flickr->apikey, 'consumerSecret' => $this->_flickr->secret); $client = $instance->getHttpClient($oauthOptions); $client->setMethod(Zend_Http_Client::POST); $client->setUri(self::FLICKRURI); $client->setParameterPost('method', 'flickr.stats.getTotalViews'); $client->setParameterPost('format', 'json'); $client->setParameterPost('nojsoncallback', 1); $response = $client->request(); return json_decode($response->getBody()); }
/** Call Twitter service * * @return array */ private function _callTwitter() { if (!$this->getCache()->test(md5($this->getKey()))) { $tokens = new OauthTokens(); $token = $tokens->fetchRow($tokens->select()->where('service = ?', 'twitterAccess')); $twitter = new Zend_Service_Twitter(array('username' => 'findsorguk', 'accessToken' => unserialize($token->accessToken), 'oauthOptions' => array('consumerKey' => $this->getConfig()->webservice->twitter->consumerKey, 'consumerSecret' => $this->getConfig()->webservice->twitter->consumerSecret))); $tweets = $twitter->statusesUserTimeline(array('count' => $this->getCount()))->toValue(); $this->getCache()->save($tweets); } else { $tweets = $this->getCache()->load(md5($this->getKey())); } return $this->buildHtml($tweets); }