_consumer_secret = null; $this->_consumer_key = null; $this->_request_token = null; $this->_request_token_secret = null; $this->_access_token = null; $this->_access_token_secret = null; $this->init($params); } function request_request_token() { $req = $this->oauth_request($this->_REQUEST_TOKEN_URL, array( 'consumer_key' => $this->_consumer_key, 'consumer_secret' => $this->_consumer_secret)); $req = $this->send_request($req); list($request_token, $request_secret) = $req->getResponseTokenSecret(); $this->_request_token = $request_token; $this->_request_token_secret = $request_secret; return 1; } function user_authorization_url($callback='') { $auth_url = new Net_URL($this->_USER_AUTH_URL); $auth_url->addQueryString('oauth_token', $this->_request_token); if ($callback) { $auth_url->addQueryString('oauth_callback', $callback); } return $auth_url->getURL(); } function request_access_token() { $req = $this->oauth_request($this->_ACCESS_TOKEN_URL, array( 'consumer_key' => $this->_consumer_key, 'consumer_secret' => $this->_consumer_secret, 'token' => $this->_request_token, 'token_secret' => $this->_request_token_secret)); $req = $this->send_request($req); list($access_token, $access_token_secret) = $req->getResponseTokenSecret(); $this->_access_token = $access_token; $this->_access_token_secret = $access_token_secret; return 1; } function execute_request($url, $params=array()) { $req = $this->oauth_request($url, '', $params); return $this->send_request($req); } function send_request($req) { $status = $req->sendRequest(); # should be checking all sorts of errors here if ($req->getResponseCode() != '200') { return PEAR::raiseError($req->getResponseBody()); } return $req; } function oauth_request($url, $auth_params=array(), $request_params=array()) { if (!$auth_params) { $auth_params = array( 'consumer_key' => $this->_consumer_key, 'consumer_secret' => $this->_consumer_secret, 'token' => $this->_access_token, 'token_secret' => $this->_access_token_secret ); } $params = array_merge($auth_params, $request_params); $req = new HTTP_Request_OAuth($url, $params); return $req; } function init($params) { foreach (array('consumer_secret', 'consumer_key', 'request_token', 'request_token_secret', 'access_token', 'access_token_secret') as $key) { if (isset($params[$key])) { $this->{'_' . $key} = $params[$key]; } } } } ?>