首页 > 解决方案 > 使用客户端应用程序遵守 Google API 配额

问题描述

Google API 可以针对每个用户和每个应用程序设置使用限制。例如,GMail API 免费层在您的应用程序的所有用户中被限制为每天十亿个配额单位。

这适用于设计良好的服务器端应用程序,可以集中确保它们遵守这些使用限制。但是,我不确定这应该如何用于客户端应用程序。正如谷歌的文档所说,

已安装的应用程序分发到各个设备,并且假定这些应用程序无法保密。

这些应用程序仍应使用 aclient_secret和凭据,但尽管名称如此,但仍假定这些应用程序不是机密的。然而,仅仅说它们不是秘密并不能防止滥用;应用程序的用户可以获取凭证文件并将其用于不同的目的,也许是更多使用 API 的目的。应用程序开发人员可以做些什么来防止这样做的人耗尽所有可用配额?

编辑澄清:

提示这个的用例是一个纯粹的桌面应用程序,它不连接到除 GMail 之外的任何服务(参见https://github.com/mbrt/gmailctl/issues/48)。如果不是为应用程序的所有用户设置全局配额,根本没有理由担心个人用户;他们不连接到除 GMail 本身之外的任何服务。

标签: google-apigmail-apiclient-sidequota

解决方案


您可以编写一个保存秘密的服务器应用程序(一个云函数可以工作)。客户端使用某种形式的标识符调用您的端点,您返回一个访问令牌。如果您的用户有浏览器,他们每次都可以进行身份​​验证;如果不是,您将需要请求存储并使用它来生成 AT 的刷新令牌。


推荐阅读