【问题标题】:How to make tools.run_flow function to work same as tools.run(deprecated method) in GmailApi authentication?如何使 tools.run_flow 功能与 GmailApi 身份验证中的 tools.run(deprecated method) 相同?
【发布时间】:2016-07-04 18:45:39
【问题描述】:

我想在不提供身份验证流程的情况下刷新令牌。你们能帮忙

【问题讨论】:

  • 到目前为止你有什么?显示您的代码。

标签: python-2.7 oauth-2.0 gmail-api


【解决方案1】:

基于此documentation,当用户在首次授权流程成功后访问您的应用程序时,您的应用程序可以使用存储的刷新令牌来授权请求​​,而无需再次提示用户。

如果您已经对用户进行了身份验证,您的应用程序可以从其数据库中检索刷新令牌并将该令牌存储在服务器端会话中。如果刷新令牌被撤销或无效,您需要抓住这一点并采取适当的措施。

这是一个示例,展示了如何实例化服务对象,然后授权它发出 API 请求。

from apiclient.discovery import build
# ...

def build_service(credentials):
  """Build a Gmail service object.

  Args:
    credentials: OAuth 2.0 credentials.

  Returns:
    Gmail service object.
  """
  http = httplib2.Http()
  http = credentials.authorize(http)
  return build('gmail', 'v1', http=http)

在检索到 OAuth 2.0 凭据后,它们可用于授权 Gmail 服务对象并向 API 发送请求。这也是 Google 文档中的 example

【讨论】:

  • 感谢@abielta,即使经过一次身份验证,我仍在使用 tools.run_flow。我完全删除了它,我的代码开始运行良好。
猜你喜欢
  • 2020-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-16
  • 2021-03-18
  • 1970-01-01
  • 2020-10-06
  • 2019-01-24
相关资源
最近更新 更多