我正在开展一个个人项目,编写一个与免费网络服务同步的应用程序。他们有一个免费的 API,可以让第三方连接并检索信息,并自行控制帐户。
这一切都很好,但为了做到这一点,所有应用程序都需要在其网站上注册开发人员密钥。这是一个静态密钥,允许我的应用程序连接并执行操作。
但这就是问题所在;我想让它成为一个开源应用程序,但这会向任何下载并查看代码的人透露我的开发人员密钥。
有没有办法隐藏这个键;保持源代码开放但不公开密钥?
一种可能的解决方案是编写您自己的 Web 服务/API。您可以在其中存储其他第三方服务的 API 密钥。然后,在您的开源应用程序中,您将调用您的服务,该服务又使用存储的(且从未透露的)API 密钥与第三方进行通信。
这将使您的密钥保持私密,并且当您从应用程序进行外部调用时,无论如何这应该不重要。它还具有额外的优势,您可以控制整个生态系统,而不是人们直接调用第三方。
缺点?嗯,它不会是完全开源的,但它可能是您在保持其中一些私有的同时能够获得的最接近的开源。