2011-04-05 67 views
0

我計劃使用google oauth IMAP註冊我的網站。 即時通訊使用zend框架相同。 http://code.google.com/p/google-mail-xoauth-tools/wiki/PhpSampleCode 也即時起訴3腿式方法註冊 當我通過示例threelegged.php。 我發現它有電子郵件地址的收件箱,他將它保留在會話中,並訪問Gmail帳戶,一旦他回來,他退出會話的電子郵件IDgmail oauth imap zend從gmail而不是會話中檢索

$ email_address = $ _SESSION ['email_address'] ;

線121號

$配置=新Zend_Oauth_Config();

$ config-> setOptions($ options);

$ config-> setToken($ accessToken);

$ config-> setRequestMethod('GET');

$ url ='https://mail.google.com/mail/b/'。 $ email_address。 '/ imap /';

我的要求是我不想讓電子郵件地址保留在會話中,而是我想給出的郵件地址在 $電子郵件地址中檢索。 我該怎麼做? 是否有任何函數在Zend框架中支持它?

回答

0

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

您將需要包括授權網址與其他網址,你所要求的權限得到數據: 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/'; 

這是在驗證用於訪問數據的令牌之後。然後,電子郵件地址可用於您的郵件請求或任何其他需要電子郵件地址的地址。