2012-10-02 74 views
2

我試圖使用PHP和CodeIgniter以及OAuth2庫從gmail獲取電子郵件。我已經得到的OAuth2設置,以獲得用戶的訪問令牌等我可以做通過OAuth2從Gmail獲取電子郵件

public function get_user_info(OAuth2_Token_Access $token) 
{ 
    $url = 'https://www.googleapis.com/oauth2/v1/userinfo?alt=json&'.http_build_query(array(
     'access_token' => $token->access_token, 
    )); 

    $user = json_decode(file_get_contents($url), true); 
    return array(
     'uid' => $user['id'], 
     'nickname' => url_title($user['name'], '_', true), 
     'name' => $user['name'], 
     'first_name' => $user['given_name'], 
     'last_name' => $user['family_name'], 
     'email' => $user['email'], 
     'location' => null, 
     'image' => (isset($user['picture'])) ? $user['picture'] : null, 
     'description' => null, 
     'urls' => array(), 
    ); 
} 

我想現在要做的就是獲取一些電子郵件獲得的用戶信息。我已經搜索了一些關於如何獲取電子郵件的代碼,但我能看到的唯一的代碼是https://mail.google.com/mail/feed/atom/。我在Google OAuth2 Playground上發現了這一點,但我無法弄清楚如何使用它直接導航到它。

任何人都可以給我一些建議嗎?理想情況下,我想獲取不只是新的電子郵件(這似乎是上面的鏈接)。

回答

0

使用基於REST的界面,您目前只能獲得unread messages feed。如果您想訪問用戶的所有電子郵件,則必須使用IMAP。 Google開發了一種可以使用的IMAP/SMTP authentication using OAuth2方法。

+0

嗨,簡,謝謝。我收集這需要一個暢通無阻的993端口? 「在imap.gmail.com:993傳入IMAP服務器的連接需要SSL」。我的託管服務提供商不會爲我解除阻止,我爲什麼決定嘗試使用OAuth路由 – iamjonesy

+0

我不認爲這會是一個問題,因爲您的服務器不需要接受端口993上的傳入連接,但該問題可能更適合在http://serverfault.com/ –

+1

對不起,我的意思是傳出連接到993被我的託管公司阻止。我會在SF上發佈一個問題。 – iamjonesy