遵守客户端应用程序的Google API配额

时间:2019-03-28 18:36:03

标签: google-api gmail-api client-side quota

Google API对每个用户和每个应用都有使用限制。例如,在应用程序的所有用户中,GMail API free tier的每日配额单位被限制为十亿。

这适用于精心设计的服务器端应用程序,可以集中确保它们遵守这些使用限制。但是,我不确定这对客户端应用程序应该如何工作。正如Google’s documentation所说,

  

已安装的应用程序被分发到各个设备,并且假定这些应用程序不能保存机密。

这些应用仍应使用client_secret和凭据,但是尽管名称已被假定为不保密。但是,仅仅说他们不是秘密并不能防止滥用行为。应用程序的用户可以获取凭据文件并将其用于其他目的,也许是使用API​​较多的目的。应用程序开发人员可以采取什么措施来防止人们耗尽所有可用配额?

为澄清起见进行编辑:

提示该案例的用例是一个纯粹的桌面应用程序,除了GMail以外,该应用程序均未连接到其他任何服务(请参见https://github.com/mbrt/gmailctl/issues/48)。如果不是为该应用程序的所有用户分配全球配额,则根本没有理由担心单个用户。除了GMail本身之外,他们无法连接到其他任何服务。

1 个答案:

答案 0 :(得分:0)

您可以编写一个包含机密信息的服务器应用程序(可以使用Cloud Function)。客户端使用某种形式的标识符呼叫您的端点,然后您返回访问令牌。如果您的用户使用浏览器,则他们可以每次进行身份验证;如果不是,则需要请求一个存储的刷新令牌,并使用该令牌来生成AT。