* 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