Google api 使用服务帐户与OAuth访问Google API时的限制

Google api 使用服务帐户与OAuth访问Google API时的限制,google-api,google-oauth,google-search-console,Google Api,Google Oauth,Google Search Console,我当前的应用程序使用“3条腿”OAuth2.0访问一个Google API。用户在谷歌同意屏幕上授权应用程序,然后应用程序代表用户请求API,并向用户显示从API加载的一些奇特数据。我的应用程序每天都从这个API加载和转换数据,所以当用户下次来时,他会看到最相关和最真实的数据 一开始一切正常,但随着时间的推移,我面临两个问题: 1.查询限制。 2.令牌生存期 我的问题是关于第二个问题,我称之为“令牌寿命”。一段时间后,访问令牌过期,当用户返回应用程序时,我们的应用程序必须再次将他发送到同意屏幕。

我当前的应用程序使用“3条腿”OAuth2.0访问一个Google API。用户在谷歌同意屏幕上授权应用程序,然后应用程序代表用户请求API,并向用户显示从API加载的一些奇特数据。我的应用程序每天都从这个API加载和转换数据,所以当用户下次来时,他会看到最相关和最真实的数据

一开始一切正常,但随着时间的推移,我面临两个问题: 1.查询限制。 2.令牌生存期

我的问题是关于第二个问题,我称之为“令牌寿命”。一段时间后,访问令牌过期,当用户返回应用程序时,我们的应用程序必须再次将他发送到同意屏幕。此外,当访问令牌一直处于过期状态时,我的应用程序无法为用户加载相关数据

我怎样才能解决这个问题?如何继续访问/刷新令牌的生命周期?服务帐户有帮助吗?服务帐户是否适用于每个用户的谷歌搜索控制台API,或者该用户是否应该是我域内的G套件用户,或者是什么? 这些问题从官方和官方都完全不清楚

如果你有谷歌API的经验,请帮助我!
谢谢

当您在用户同意的情况下使用OAuth时,无需反复提示用户同意

[a] 如果您的用例完全在线,并且您希望能够在用户每次访问您的应用程序时请求令牌,请使用或


[b] 如果您的用例是希望即使用户不在场也能获得访问令牌,那么您需要请求授权码并存储刷新令牌。您的刷新令牌寿命较长,可以使用。

谢谢您的回答!我的用例是[b],是的,我正在存储刷新令牌。实际上,我存储了从Google的OAuth Python客户端库获得的凭证对象。当我的应用程序访问API时,它调用库的refresh()方法,然后使用新获得的refresh\u令牌存储凭证对象。如果我保留在第一次用户授权时获得的refresh_令牌,它会永远持续吗?refresh令牌通常寿命较长,但并不认为它们会永远持续。见和。如果刷新令牌无效,您应该构建应用程序以请求新的同意。