Example #1
0
 /**
  * Constructor; create a new object with an optional array|Zend_Config
  * instance containing initialising options.
  *
  * @param  array|Zend_Config $options
  * @return void
  */
 public function __construct($options = null)
 {
     $this->_config = new Zend_Oauth_Config();
     if ($options !== null) {
         if ($options instanceof Zend_Config) {
             $options = $options->toArray();
         }
         $this->_config->setOptions($options);
     }
 }
Example #2
0
 /**
  * Constructor; creates a new HTTP Client instance which itself is
  * just a typical Zend_Http_Client subclass with some OAuth icing to
  * assist in automating OAuth parameter generation, addition and
  * cryptographioc signing of requests.
  *
  * @param array $oauthOptions
  * @param string $uri
  * @param array|Zend_Config $config
  * @return void
  */
 public function __construct(array $oauthOptions, $uri = null, $config = null)
 {
     parent::__construct($uri, $config);
     $this->_config = new Zend_Oauth_Config();
     if (!is_null($oauthOptions)) {
         if ($oauthOptions instanceof Zend_Config) {
             $oauthOptions = $oauthOptions->toArray();
         }
         $this->_config->setOptions($oauthOptions);
     }
 }
Example #3
0
 /**
  * Constructor; creates a new HTTP Client instance which itself is
  * just a typical Zend_Http_Client subclass with some OAuth icing to
  * assist in automating OAuth parameter generation, addition and
  * cryptographioc signing of requests.
  *
  * @param  array $oauthOptions
  * @param  string $uri
  * @param  array|Zend_Config $config
  * @return void
  */
 public function __construct($oauthOptions, $uri = null, $config = null)
 {
     if (!isset($config['rfc3986_strict'])) {
         $config['rfc3986_strict'] = true;
     }
     parent::__construct($uri, $config);
     $this->_config = new Zend_Oauth_Config();
     if ($oauthOptions !== null) {
         if ($oauthOptions instanceof Zend_Config) {
             $oauthOptions = $oauthOptions->toArray();
         }
         $this->_config->setOptions($oauthOptions);
     }
 }
Example #4
0
 /**
  * Constructor; creates a new HTTP Client instance which itself is
  * just a typical Zend_Http_Client subclass with some OAuth icing to
  * assist in automating OAuth parameter generation, addition and
  * cryptographioc signing of requests.
  *
  * @param  array|Zend_Config $oauthOptions
  * @param  string            $uri
  * @param  array|Zend_Config $config
  * @return void
  */
 public function __construct($oauthOptions, $uri = null, $config = null)
 {
     if ($config instanceof Zend_Config && !isset($config->rfc3986_strict)) {
         $config                   = $config->toArray();
         $config['rfc3986_strict'] = true;
     } else if (null === $config ||
                (is_array($config) && !isset($config['rfc3986_strict']))) {
         $config['rfc3986_strict'] = true;
     }
     parent::__construct($uri, $config);
     $this->_config = new Zend_Oauth_Config;
     if ($oauthOptions !== null) {
         if ($oauthOptions instanceof Zend_Config) {
             $oauthOptions = $oauthOptions->toArray();
         }
         $this->_config->setOptions($oauthOptions);
     }
 }
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
require_once 'common.php';
require_once 'Zend/Oauth.php';
require_once 'Zend/Oauth/Config.php';
require_once 'Zend/Oauth/Token/Access.php';
require_once 'Zend/Mail/Protocol/Imap.php';
require_once 'Zend/Mail/Storage/Imap.php';
/**
 * Setup OAuth
 */
$options = array('requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER, 'version' => '1.0', 'signatureMethod' => 'HMAC-SHA1', 'consumerKey' => $TWO_LEGGED_CONSUMER_KEY, 'consumerSecret' => $TWO_LEGGED_CONSUMER_SECRET_HMAC);
$config = new Zend_Oauth_Config();
$config->setOptions($options);
$config->setToken(new Zend_Oauth_Token_Access());
$config->setRequestMethod('GET');
$url = 'https://mail.google.com/mail/b/' . $TWO_LEGGED_EMAIL_ADDRESS . '/imap/';
$urlWithXoauth = $url . '?xoauth_requestor_id=' . urlencode($TWO_LEGGED_EMAIL_ADDRESS);
$httpUtility = new Zend_Oauth_Http_Utility();
/**
 * Get an unsorted array of oauth params,
 * including the signature based off those params.
 */
$params = $httpUtility->assembleParams($url, $config, array('xoauth_requestor_id' => $TWO_LEGGED_EMAIL_ADDRESS));
/**
 * Sort parameters based on their names, as required
 * by OAuth.
 */
 /**
  * Parse option array or Zend_Config instance and setup options using their
  * relevant mutators.
  *
  * @param  array|Zend_Config $options
  * @return Zend_Oauth_Config
  */
 public function setOptions(array $options)
 {
     parent::setOptions($options);
     foreach ($options as $key => $value) {
         switch ($key) {
             case 'realm':
                 $this->setRealm($value);
                 break;
         }
     }
     return $this;
 }
 */
if (!isset($_SESSION['ACCESS_TOKEN'])) {
    if (!isset($_SESSION['REQUEST_TOKEN'])) {
        // Get Request Token and redirect to Google
        $_SESSION['REQUEST_TOKEN'] = serialize($consumer->getRequestToken(array('scope' => implode(' ', $THREE_LEGGED_SCOPES))));
        $consumer->redirect();
    } else {
        // Have Request Token already, Get Access Token
        $_SESSION['ACCESS_TOKEN'] = serialize($consumer->getAccessToken($_GET, unserialize($_SESSION['REQUEST_TOKEN'])));
        header('Location: ' . getCurrentUrl(false));
        exit;
    }
} else {
    // Retrieve mail using Access Token
    $accessToken = unserialize($_SESSION['ACCESS_TOKEN']);
    $config = new Zend_Oauth_Config();
    $config->setOptions($options);
    $config->setToken($accessToken);
    $config->setRequestMethod('GET');
    $url = 'https://mail.google.com/mail/b/' . $email_address . '/imap/';
    $httpUtility = new Zend_Oauth_Http_Utility();
    /**
     * Get an unsorted array of oauth params,
     * including the signature based off those params.
     */
    $params = $httpUtility->assembleParams($url, $config);
    /**
     * Sort parameters based on their names, as required
     * by OAuth.
     */
    ksort($params);