From c5824ce5c96e4832d84ef15229a120fe489e365f Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Sun, 19 Jul 2009 14:09:18 -0400 Subject: [PATCH] Add http basic authentication support. If you instantiate the Horde_Service_Twitter object with a 'oauth' parameter containing a Horde_Oauth object, it will use it...otherwise, you should instantiate the object with username and password parameters so it can use http basic --- .../Service_Twitter/lib/Horde/Service/Twitter.php | 3 +- .../lib/Horde/Service/Twitter/Auth/Basic.php | 28 ++++++++++++++++ .../lib/Horde/Service/Twitter/Request/Basic.php | 39 ++++++++++++++++++++++ .../lib/Horde/Service/Twitter/Statuses.php | 6 ++-- 4 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 framework/Service_Twitter/lib/Horde/Service/Twitter/Auth/Basic.php create mode 100644 framework/Service_Twitter/lib/Horde/Service/Twitter/Request/Basic.php diff --git a/framework/Service_Twitter/lib/Horde/Service/Twitter.php b/framework/Service_Twitter/lib/Horde/Service/Twitter.php index d3c224d89..9584d44fb 100644 --- a/framework/Service_Twitter/lib/Horde/Service/Twitter.php +++ b/framework/Service_Twitter/lib/Horde/Service/Twitter.php @@ -71,7 +71,8 @@ class Horde_Service_Twitter } elseif (!empty($config['username']) && !empty($config['password'])) { // Http_Basic $this->_authType = 'Basic'; - $params = array(); + $params = array('username' => $config['username'], + 'password' => $config['password']); } $aclass = 'Horde_Service_Twitter_Auth_' . $this->_authType; diff --git a/framework/Service_Twitter/lib/Horde/Service/Twitter/Auth/Basic.php b/framework/Service_Twitter/lib/Horde/Service/Twitter/Auth/Basic.php new file mode 100644 index 000000000..74136651a --- /dev/null +++ b/framework/Service_Twitter/lib/Horde/Service/Twitter/Auth/Basic.php @@ -0,0 +1,28 @@ + + * @license http://opensource.org/licenses/bsd-license.php BSD + * @category Horde + * @package Horde_Service_Twitter + */ +class Horde_Service_Twitter_Auth_Basic extends Horde_Service_Twitter_Auth +{ + protected static $_authorizationHeader; + + public function buildAuthorizationHeader() + { + if (empty(self::$_authorizationHeader)) { + self::$_authorizationHeader = 'Basic ' . base64_encode($this->username . ':' . $this->password); + } + + return self::$_authorizationHeader; + } + +} diff --git a/framework/Service_Twitter/lib/Horde/Service/Twitter/Request/Basic.php b/framework/Service_Twitter/lib/Horde/Service/Twitter/Request/Basic.php new file mode 100644 index 000000000..792b0d069 --- /dev/null +++ b/framework/Service_Twitter/lib/Horde/Service/Twitter/Request/Basic.php @@ -0,0 +1,39 @@ + + * @license http://opensource.org/licenses/bsd-license.php BSD + * @category Horde + * @package Horde_Service_Twitter + */ +class Horde_Service_Twitter_Request_Basic extends Horde_Service_Twitter_Request +{ + + protected $_twitter; + + public function __construct($twitter) + { + $this->_twitter = $twitter; + } + + public function get($url, $params = array()) + { + $client = new Horde_Http_Client(); + $response = $client->get($url, array('Authorization' => $this->_twitter->auth->buildAuthorizationHeader())); + + return $response->getBody(); + } + + public function post($url, $params = array()) + { + $client = new Horde_Http_Client(); + $response = $client->post($url, $params, array('Authorization' => $this->_twitter->auth->buildAuthorizationHeader())); + + return $response->getBody(); + } + +} diff --git a/framework/Service_Twitter/lib/Horde/Service/Twitter/Statuses.php b/framework/Service_Twitter/lib/Horde/Service/Twitter/Statuses.php index f48b4d79e..ee7628c57 100644 --- a/framework/Service_Twitter/lib/Horde/Service/Twitter/Statuses.php +++ b/framework/Service_Twitter/lib/Horde/Service/Twitter/Statuses.php @@ -27,7 +27,7 @@ class Horde_Service_Twitter_Statuses */ public function show($id) { - $url = $this->_endpoint . '/destroy.' . $this->_format; + $url = $this->_endpoint . 'show.' . $this->_format; return $this->_twitter->request->post($url, array('id' => $id)); } @@ -43,7 +43,7 @@ class Horde_Service_Twitter_Statuses */ public function destroy($id) { - $url = $this->_endpoint . '/destroy.' . $this->_format; + $url = $this->_endpoint . 'destroy.' . $this->_format; return $this->_twitter->request->post($url, array('id' => $id)); } @@ -60,7 +60,7 @@ class Horde_Service_Twitter_Statuses */ public function update($status, $replyTo = '') { - $url = $this->_endpoint . '/update.' . $this->_format; + $url = $this->_endpoint . 'update.' . $this->_format; $params = array('status' => $status); if (!empty($replyTo)) { $params['in_reply_to_status_id'] = $replyTo; -- 2.11.0