【问题标题】:Fetch emails from Gmail via OAuth2通过 OAuth2 从 Gmail 中获取电子邮件
【发布时间】:2012-09-23 12:56:46
【问题描述】:

我正在尝试使用 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 上找到了这个,但除了直接导航到它之外,我不知道如何使用它。

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 您好 Jan,谢谢。我收集这需要一个畅通的 993 端口? “与 imap.gmail.com:993 上的 IMAP 服务器的传入连接需要 SSL”。我的托管服务提供商不会为我解除阻止,这就是我决定尝试 OAuth 路由的原因
    • 我认为这不是问题,因为您的服务器不需要接受端口 993 上的传入连接,但这个问题可能更适合serverfault.com
    • 抱歉,我的托管公司阻止了到 993 的传出连接。我会在 SF 上发布一个问题。
    • 嗨,Jen,您知道在使用未读消息提要时是否可以传递用户详细信息?
    • 对不起,你想通过什么地方?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多