python,如何在不共享密钥凭证的情况下编写桌面应用?

4 投票
1 回答
519 浏览
提问于 2025-04-30 03:03

我正在用Python写一个开源应用,参考了这个例子:https://developers.google.com/gmail/api/quickstart/quickstart-python?hl=it

我已经成功生成了client_secret.json文件,并且顺利运行了那个例子。

现在,我开始写自己的代码,根据谷歌的文档:

警告:请保持你的客户端密钥私密。如果有人获取了你的客户端密钥,他们可能会用它来消耗你的配额,给你的谷歌API控制台项目产生费用,并请求访问用户数据。

那么,将来我该如何分享我应用的代码,同时又能保持client_secret.json的秘密呢?

暂无标签

1 个回答

4

好的,我在这里找到了答案:

https://developers.google.com/accounts/docs/OAuth2InstalledApp

这个流程和在使用OAuth 2.0进行网页服务器应用时的流程很相似,但有三个不同之处:

  • 在创建客户端ID时,你需要说明你的应用是一个“已安装应用”。这样会导致redirect_uri参数的值不同。
  • 从开发者控制台获得的客户端ID和客户端密钥会直接写在你应用的源代码里。在这种情况下,客户端密钥显然不被视为秘密。
  • 授权码可以通过浏览器的标题栏返回给你的应用,或者通过http://localhost的端口在查询字符串中返回。

换句话说,如果你在Google API控制台创建项目时指定它是一个“已安装应用”,那么你可以安全地把密钥写在你的代码里。

撰写回答