通过OAuth2从Gmail中获取电子邮件

时间:2012-10-02 16:18:25

标签: php codeigniter gmail google-api oauth-2.0

我正在尝试使用PHP和CodeIgniter以及OAuth2库从gmail中获取电子邮件。我已经设置了OAuth2以获取用户访问令牌等。我可以通过

获取用户信息
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上发现了这个问题,但除了直接导航它之外我无法弄清楚如何使用它。

有人能给我一些建议吗?理想情况下,我想要获取不仅仅是新的电子邮件(这似乎是上面链接所做的)。

1 个答案:

答案 0 :(得分:0)

使用基于REST的界面,您目前只能获得unread messages feed。如果要访问用户的所有电子邮件,则必须使用IMAP。 Google开发了一种可以使用IMAP/SMTP authentication using OAuth2的方法。