【问题标题】:Can I publish the client_id.json of my blogger app?我可以发布我的博客应用程序的 client_id.json 吗?
【发布时间】:2025-12-22 13:45:15
【问题描述】:

我正在用 python 编写一个命令行工具来发布/编辑/删除 Blogger 帖子。由于身份验证使用 OAuth2,因此我在 Google API 上请求了 API 凭据。它以 client_id.json 文件的形式出现。

{
  "installed": {
    "client_id": "<removed>",
    "project_id": "<removed>",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://www.googleapis.com/oauth2/v3/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "<removed>",
    "redirect_uris": [
      "urn:ietf:wg:oauth:2.0:oob",
      "http://localhost"
    ]
  }
}

我打算将应用程序开源。

  • 如果有人拥有该文件,这是否意味着他可以访问允许该应用管理其博客的所有人?
  • 是否需要单独的用户生成自己的 API 密钥?

【问题讨论】:

  • 如果有人拥有您的 client_secret 文件,那么他们可以使用您提供给相关 Google Cloud 项目的范围和 API 为所欲为。他们不仅限于将其与您的书面应用程序配对。他们所做的一切? Google 认为您正在这样做。

标签: google-api google-oauth blogger


【解决方案1】:

不,你不能,这就是原因。

我打算将应用程序开源。

  1. 如果某人拥有该文件,这是否意味着他可以访问允许该应用管理其博客的所有人?

是的,如果有人拥有您的凭据文件,他们就可以为所欲为。使用您的帐户并可能向您的开发者帐户发送垃圾邮件导致您无法访问您的帐户,请参阅Can I really not ship open source with Client ID?

  1. 是否需要单独的用户生成自己的 API 密钥?

下载您的开源项目并想要使用它的任何人都不需要在谷歌开发者控制台上制作自己的凭据文件。根据TOS,您不得与其他用户共享您的凭据文件。

【讨论】:

  • MS Word 可以通过某种方式发布到 Blogger。不幸的是,我无法访问它进行测试,但我猜他们找到了另一种身份验证方式?
  • MS Word 是一个已安装的应用程序,它们的凭据可能是在可执行文件中构建的,或者它们正在从后台进程将其发送到应用程序。 OAuth2 是对博主进行身份验证的唯一方法。您不能在一个开源项目中发布您的凭据,您必须指导用户如何创建自己的。
  • 这似乎不太可能:通过逆向工程可以相对容易地找到密钥。但是“已安装的应用程序”让我朝着正确的方向前进:developers.google.com/api-client-library/python/auth/… 如果您不想发布秘密,似乎还有另一种选择
最近更新 更多