Google OAuth 2.0 的长寿命访问令牌



我正在构建一个需要访问Google云端硬盘和Google Sheets的应用程序。我希望用户转到 https://mydomain.appspot.com/authenticate 以完成Google登录流程并进行身份验证,以便后端接收Google云端硬盘和Google表格的访问令牌。

之后,我希望后端能够在没有用户交互的情况下访问云端硬盘和表格。例如,我希望每小时运行一次计划任务,并从云端硬盘和工作表中检索一些数据。我希望后端使用用户对自己进行身份验证时收到的令牌。

这可能吗?我真的希望如此。我一直在寻找这里,但我真的找不到任何可以帮助我的东西。https://developers.google.com/sheets/api/guides/authorizing

后端是用Java开发的,部署在Google App Engine上。

长期存在的访问令牌实际上称为刷新令牌。 您需要让用户对应用程序进行身份验证,然后您将收到刷新令牌。 然后,可以使用刷新令牌在需要时从 Google 身份验证服务器请求新的访问令牌。

注意:不要让自己被服务帐户跟踪,这不是一回事。 您可以使用从 Oauth2 获得的刷新令牌运行自动脚本,谷歌的术语有点令人困惑。

查看官方的谷歌Java客户端库,它应该为您处理大部分。 将OAuth 2.0与适用于Java的Google API客户端库结合使用

您需要按照以下位置的定义设置脱机访问:https://developers.google.com/identity/protocols/OAuth2WebServer#offline

在用户授予对所请求范围的访问权限后,您可以在用户离线时继续使用 API 客户端代表用户访问 Google API。客户端对象将根据需要刷新访问令牌。

最新更新