使用OAuth 2.0访问Gmail IMAP的访问令牌
我正在使用谷歌的Oauth 2.0来获取用户的访问令牌(access_token),但是我不知道怎么用这个令牌和imaplib库来访问邮箱。
4 个回答
1
这是我一直在考虑的事情。我不想自己去处理刷新访问令牌之类的麻烦事,而且我发现谷歌的示例代码里有太多重复的部分。我决定写一些非常简单的封装,来实现使用谷歌API的OAuth2 IMAP和SMTP,这些封装利用了google-api-python-client中的Credentials和Flow对象。
希望这对某些人有帮助。
1
现在,你可以使用OAuth 1.0来通过IMAP和SMTP访问Gmail,但OAuth 2.0还不支持。想了解更多信息,可以查看这个链接:https://developers.google.com/google-apps/gmail/oauth_overview
11
下面是使用OAuth 2.0的IMAP代码
email = 'k@example.com'
access_token = 'vF9dft4qmTc2Nvb3RlckBhdHRhdmlzdGEuY29tCg'
auth_string = 'user=%s\1auth=Bearer %s\1\1' % (email, access_token)
imap_conn = imaplib.IMAP4_SSL('imap.gmail.com')
imap_conn.debug = 4
imap_conn.authenticate('XOAUTH2', lambda x: auth_string)
imap_conn.select('INBOX')
想了解更多细节,可以查看这个库的代码。