真正解决 Windows 中 Chromium “缺少 Google API 密钥” 的问题
不知从何时起,Chrome 成了我用得最多的桌面浏览器。然而最近(版本为 Chrome 54,系统为 Windows 7),发现打开百度地图或者通过百度的搜索结果打开某些页面的时候,就会导致相关的标签页出现“喔唷,崩溃啦”这样的错误(正在写此文的时候,发现今天更新为 Chrome 55 之后,这个问题已不存在),于是尝试开源的使用 Chromium(下载之后解压即可使用)。
可是,问题来了,一打开 Chromium,地址栏下方就提示 “缺少 Google API 密钥,因此 Chromium 的部分功能将无法使用”(如上图所示)。这直接导致了无法在 Chromium 登录 Google 账户并同步各种信息。网上有人说:
打开 windows 的 CMD 命令提示符,依次输入以下命令:
setx GOOGLE_API_KEY "no"
setx GOOGLE_DEFAULT_CLIENT_ID "no"
setx GOOGLE_DEFAULT_CLIENT_SECRET "no"
其实就是设置这样三个环境变量,值均为“no”。然而这样只是消除了哪行提示而已(对于没有 Google 账户的“良民”们,或许有用),Google 账户还是无法登录。点击那条提示信息右侧的“了解详情”,打开的页面上,讲解了如何获取自己的 Google API 密钥,但是由于当时的条件所限(我的 Google 账户在 Google Cloud Platform 创建的项目数量已经达到上限,而要取消以腾出空位的话,不能立即生效),就没有去申请自己的 Google API 密钥,于是这个问题就暂时搁置了。GitHub 上也有一篇类似的文章介绍如何创建自己的 Google API 密钥,显得稍微通俗易懂。
今天,在 Debian Jessie 为 Chromium 设置 PepperFlashPlayer 的时候,在 /etc/chromium.d目录中看到一个 apikeys 文件。打开它,看到里面的内容如下:
# API keys assigned to Debian by Google for access to their services like sync and gmail.
export GOOGLE_API_KEY="AIzaSyCkfPOPZXDKNn8hhgu3JrA62wIgC93d44k"
export GOOGLE_DEFAULT_CLIENT_ID="811574891467.apps.googleusercontent.com"
export GOOGLE_DEFAULT_CLIENT_SECRET="kdloedMFGdGla2P1zacGjAQh"
这不就是设置环境变量吗?于是将上述文章中提到的环境变量按照这个 apikeys 文件中的值进行设置,即在 CMD 中执行:
setx GOOGLE_API_KEY AIzaSyCkfPOPZXDKNn8hhgu3JrA62wIgC93d44k
setx GOOGLE_DEFAULT_CLIENT_ID 811574891467.apps.googleusercontent.com
setx GOOGLE_DEFAULT_CLIENT_SECRET kdloedMFGdGla2P1zacGjAQh
再尝试打开 Chromium,发现提示小时了,Google 账户也能登录了。