* 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. */ ksort($params); /**
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); /** * Construct a comma-deliminated,ordered,quoted list of