python,如何在不共享密钥凭证的情况下编写桌面应用?
我正在用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控制台创建项目时指定它是一个“已安装应用”,那么你可以安全地把密钥写在你的代码里。