2011-11-09 65 views
1

在Zend Gdata模塊中,有自己的文檔和日曆類,但沒有用於Gmail的任何類。你知道任何有用的例子嗎?Zend Gdata和Gmail Feed訪問與Oauth

因爲我不能讓gmail自己工作。我從Oauth輕鬆地獲得了令牌,並且Zend確實提供了類似Zend_Gdata_Docs的工作。

我只是證明我的觀點:

$token = unserialize($this->user->google_token); 
$httpClient = $token->getHttpClient($google_oauth_config); 
$client = new Zend_Gdata_Docs($httpClient); 
// Retrieve user's list of Google Docs 
$feed = $client->getDocumentListFeed(); 

foreach($feed->entries as $entry) 
{ 
    $docs[] = $entry; 
} 

而且我得到的文檔像我應該的。

但是如何獲取電子郵件?有它沒有現成的客戶,所以我想正義的力量請求權端點:

$token = unserialize($this->user->google_token); 
$httpClient = $token->getHttpClient($google_oauth_config); 
$httpClient->setUri("https://mail.google.com/mail/feed/atom"); 
$response = $httpClient->request(); 

但直接訪問它像這似乎打破了東西/或東西沒有得到實現。谷歌對我說,401沒有進行訪問。

爲了更好地縮小問題,我改變了我的工作文檔代碼,以便手動設置URI,然後執行相同的直接請求()(我根本不使用該Gdata_Docs類),並且還引發了錯誤谷歌的結局。所以這個問題似乎是在這個直接的要求中。

如果有人可以有任何有用的輸入應該做什麼,我會更感激!或者我需要創建新的課程,擴展Gdata並嘗試這種方式?這是我能想出的一切。

+0

由於所有這些問題,我決定放棄zend並使用谷歌的Oauth模塊,這並不好,但更好。 – Jasmo

回答

0

也許你可以試試它。

$httpClient = $accessToken->getHttpClient($this->_oAuthOptions); 
    ($httpClient instanceof Zend_Gdata_HttpClient); 
    $httpClient->setUri("https://mail.google.com/mail/feed/atom/"); 
    $httpClient->setParameterGet('server', 'mail'); 
    $httpClient->setMethod('GET'); 
    $response = $httpClient->request(); 
    print_r($response);