快速启动Python Gmail API代码是否处理刷新令牌?

时间:2014-11-14 15:49:55

标签: python gmail-api

这个快速启动代码是否处理刷新令牌?如果是的话,在哪里/如何?

https://developers.google.com/gmail/api/quickstart/quickstart-python

我正在开发一个需要持续/不受限制地访问Gmail帐户电子邮件的Python应用程序,因此我想确保我正在处理此页面中描述的方案:

https://developers.google.com/gmail/api/auth/web-server#send_authorized_requests_and_check_for_revoked_credentials

具体而言,"如果您的应用程序需要离线访问,则当您的应用首次交换授权代码时,它还会收到一个刷新令牌,用于在前一个令牌过期后接收新的访问令牌。您的应用程序将此刷新令牌(通常在您服务器上的数据库中)存储起来供以后使用"段落。

我不清楚快速启动代码是否/如何处理这个问题。谢谢!

2 个答案:

答案 0 :(得分:1)

我想出来了。刷新令牌(如果由应用程序保存以供脱机访问)用于永久请求新的访问令牌(因为它们是短暂的/过期的)。此快速启动代码会将刷新令牌保存在存储的凭据(STORAGE文件)中,并包装Oauth 2.0方法,以便在需要时从授权服务器获取新的访问权限。

如果由于某种原因您需要获得另一个刷新令牌,您可以在让用户再次批准您的应用程序之后从授权服务器请求一个:

来自https://developers.google.com/gmail/api/auth/web-server "始终存储用户刷新令牌。如果您的应用程序需要新的刷新令牌,则它必须发送一个请求,并将approval_prompt查询参数设置为强制。这将导致用户看到一个对话框,以再次向您的应用程序授予权限。"

有关授权服务器请求的详细信息: https://developers.google.com/accounts/docs/OAuth2WebServer

答案 1 :(得分:0)

只需添加,限制适用于每个客户端 - 用户组合发布的刷新令牌数,以及所有客户端中每个用户的刷新令牌数,这些限制是不同的。如果您的应用程序请求足够的刷新令牌超过其中一个限制,则较旧的刷新令牌将停止工作。