0x00 前言
自编译的 Chromium 通常不会包含 Google API Key, 这就导致我们无法使用一系列的 Google 服务, 如登录和同步等.

该问题实际上很好解决, 只要你有一个 Google 账户就能申请自己的 API Key 并配置到 Chromium 内. 更详细的操作请参考此处, 本文只介绍基础操作.
0x01 申请 API Key
首先你要有一个 Google 账户, 并且你需要加入 chromium-dev 组.

如果你只想用这些 API 而不关心组内消息, 可以按图示配置消息通知.

随后我们直接进入 Google Cloud Platform.
如果是首次访问, 打开后会有一些条款和设置需要同意和配置, 直接按页面提示操作即可.

然后进入项目列表中新建一个项目


接下来按向导操作即可, 非常的简单. 注意项目名称创建好后就不能改变, 建议认真填写. 如果你不是第一次使用 Google Cloud Platform 而且配额满了请自行寻找解决方案.

创建完项目后, 直接进入 APIs->Library 页面

进入 API Library 后, 按需启用自己需要的 Google API 即可, 大部分 API 名称中都包含 Chrome 字样, 直接搜索就能找到. 如果你找不到某些API, 可以复制下面的 ID 并访问 https://console.cloud.google.com/apis/library/<API ID>?id=<Project UUID>&project=<Project ID>&organizationId=0
来直接访问, 只要你在组内一般都不会有问题. 按我的习惯而言, 我开了下面这四个:
- Chrome Sync API (chromesync.googleapis.com)
- Chrome Web Store API (chromewebstore.googleapis.com)
- Chrome Suggest API (suggest.googleapis.com)
- Chrome Translate Element (translateelement.googleapis.com)
启用完毕后, 进入 APIs->Credentials 页面

在这里我们创建一个 API Key

为了增强安全性, 建议创建完毕后对 Key 设置限制, 先进入 API Key 的设置页面

在页面底部按图示配置, 然后点击 Select APIs 打开 API 选择器, 勾上刚才启用的几个 Chrome API.


最后不要忘了点底部的保存. 同样的, 我们再生成一个 OAuth client ID, 类型选择 Other 即可.
注意: 如果你不验证并发布OAuth consent screen, 生成的 OAuth client ID 都只能进行100次登录, 超过次数后就必须删除并重新生成.


如果提示配置 OAuth consent screen, 简单的选择 External 并填一个项目名称保存就好了, 不需要提交验证. 当然, 你也可以增加更多的自定义元素.
如果一切正常, 页面应该看起来像这样.

0x02 配置 API Key
对于 Chromium 而言, 有两种配置方案, 一种是直接编译进安装包, 另一种是通过环境变量设置. 这里只介绍第二种配置方案.
首先打开系统的环境变量设置页面 (Win+X,Y 打开系统属性然后按图操作)

新建三个用户变量, 分别为
- GOOGLE_API_KEY
- GOOGLE_DEFAULT_CLIENT_ID
- GOOGLE_DEFAULT_CLIENT_SECRET
按照下图复制各个值填入其中, 最后重启 Chromium 就可以正常登录 Google 和使用各个功能了.
