我正在构建一个需要访问Google云端硬盘和Google表格的应用程序。我希望用户转到https://mydomain.appspot.com/authenticate以完成Google登录流程并对自己进行身份验证,以便后端获得Google云端硬盘和Google表格的访问令牌。
之后我希望后端能够在没有用户交互的情况下访问Drive和Sheets。例如,我希望每小时运行一个计划任务,并从Drive和Sheets中检索一些数据。我希望后端使用用户验证自己时收到的令牌。
这可能吗?我真的希望如此。我一直在这里看,我真的没有找到任何可以帮助我的东西。 https://developers.google.com/sheets/api/guides/authorizing
后端是用Java开发的,并部署在Google App Engine上。
答案 0 :(得分:3)
长期存取令牌实际上称为刷新令牌。您需要让您的用户验证您的应用程序,然后您将收到刷新令牌。然后,可以使用刷新令牌在您需要时从Google身份验证服务器请求新的访问令牌。
注意:不要让自己跟踪服务帐户,这不是一回事。您可以使用从Oauth2获得的刷新令牌运行自动脚本,googles术语只是有点混乱。
查看官方google java客户端库,它应该为您处理大部分内容。 Using OAuth 2.0 with the Google API Client Library for Java
答案 1 :(得分:0)
您需要按以下定义设置Offline Access: https://developers.google.com/identity/protocols/OAuth2WebServer#offline
用户授予对请求范围的离线访问权限后,您可以在用户离线时继续使用API客户端代表用户访问Google API。客户端对象将根据需要刷新访问令牌。