2012-10-02 60 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

相关问题