gmail oauth imap zend извлекается из gmail вместо сеанса

#zend-framework #oauth #gmail #imap

#zend-framework #oauth #gmail #imap

Вопрос:

Я планирую использовать Google oauth IMAP для регистрации на моем веб-сайте. Я использую zend framework для того же. http://code.google.com/p/google-mail-xoauth-tools/wiki/PhpSampleCode Также я подаю в суд на трехэтапный подход, чтобы зарегистрироваться, когда я просматриваю образец threelegged.php. Я обнаружил, что у меня есть адрес электронной почты inbox, и он сохраняет его в сеансе и переходит к доступу к учетной записи gmail, и как только он возвращается обратно, он удаляет идентификатор электронной почты из сеанса

$email_address = $_SESSION[’email_address’];

Строка № 121

$config = новый Zend_Oauth_Config();

$config->setOptions($options);

$config->setToken($accessToken);

$config->setRequestMethod(‘GET’);

$url = ‘https://mail.google.com/mail/b /’ . $email_address . ‘/imap/’;

Мое требование заключается в том, что я не хочу, чтобы адрес электронной почты сохранялся в сеансе, вместо этого я хочу, чтобы указанный адрес gmail был получен в $ email address. Как я могу это сделать? Поддерживает ли это какая-либо функция в Zend framework?

Ответ №1:

http://sites.google.com/site/oauthgoog/Home/emaildisplayscope

Вам нужно будет включить URL-адрес авторизации в другие ваши URL-адреса, с которых вы запрашиваете разрешение на получение данных: https://www.googleapis.com/auth/userinfo.email

Затем, когда вы действительно получите авторизованный токен, вы можете сделать это следующим образом:

 // Get access token from session after authorization process is complete.
$accessToken = unserialize($_SESSION['ACCESS_TOKEN']);

// Retrieve email address using Access Token
$erequest = $accessToken->getHttpClient($options);
$erequest->setUri('https://www.googleapis.com/userinfo/email');
$erequest->setMethod(Zend_Http_Client::GET);
$ereturn = $erequest->request();
parse_str($ereturn->getBody(), $earray);
$email_address = $earray['email'];

// Retrieve mail using 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/';
  

Это происходит после аутентификации токена для доступа к данным. Затем адрес электронной почты можно использовать для вашего почтового запроса или чего-либо еще, для чего требуется адрес электронной почты.