不需要,字型配對產生器的連結不需要 API 金鑰。 Google Fonts CSS2 端點所產生的連結,是一個純粹的樣式表 URL,任何瀏覽器都可以在不需要驗證的情況下請求,這也是為什麼像Google Fonts Pair Finder這樣的工具,會原封不動地複製它,並直接交到你的剪貼簿中。你貼進 HTML head 中的那段字串,只列出字型家族名稱、字重,以及一個顯示指令——絕不含任何祕密或權杖。Google 刻意讓這個執行期端點保持匿名,讓網頁能載入字型,而不需要註冊帳號,也不需要額外傳送標頭。正是這種匿名設計,讓同一個連結,在你第一次預覽時、部署之後,以及真實訪客從自己的網路載入時,都能同樣正常運作。Google 字型生態系中唯一需要驗證的部分,屬於一個獨立的目錄 Developer API,用來以程式化方式查詢中繼資料——而這個端點,並不是樣式表連結所指向的地方。
因為這個連結是匿名且自足的,實際的工作流程也就很簡單:挑一組配對、預覽,再貼上。本篇指南接下來的內容,會說明複製出來的字串實際包含什麼、它與那個確實需要金鑰的目錄 API 有何不同,以及在上線之前值得檢查的隱私、安全性,與效能考量。

複製出來的連結實際上包含什麼
Google Fonts Pair Finder 中的「Copy link」動作,會寫出單一一個link rel="stylesheet"標籤。剝除周圍的 HTML,剩下的就是一個結構小巧、可預期的 URL:
- 來源與路徑: https://fonts.googleapis.com/css2——這個公開的 CSS2 端點。
- 每個字型一個family參數: 對於一組襯線加無襯線的配對,URL 中會有兩個參數;對於一組全無襯線的配對,同樣是兩個;襯線加窄體的配對,也一樣使用兩個。
- 空格會編碼成加號: 「Playfair Display」會變成family=Playfair+Display。
- 每個參數內都有一個wght軸數值: 每個字型所要求的每一個字重,都會列在裡面,例如wght@700或wght@400。
- 結尾的一個display=swap指令: 這會要求瀏覽器立即渲染備援文字,並在真正的字型載入完成後再替換上去。
這就是全部的內容了。你不會看到key=、api_key=、Authorization 標頭,或任何工作階段權杖,因為這個公開的 CSS Fonts API 完全不需要這些東西。同一個 URL,在任何瀏覽器、任何國家,以及任何能連上fonts.googleapis.com的主機環境中,都能正常運作。
如何複製這個連結,並在你的 HTML 中使用它
如果你以前從未把 Google Fonts 的樣式表貼進過一個專案,這是從這個工具走到一個可運作頁面最短的路徑。
- 開啟 Google Fonts Pair Finder,從八組精選的標題與內文組合中挑選一組。
- 在輸入欄位中輸入最多 240 個字元、具代表性的標題或產品文案;預覽會立即更新,讓你能並排比較顯示字型與內文字型的節奏。
- 如果你只想要那個 link 元素,就點選Copy link;如果你只想要那兩條可重複使用的 class 規則,就點選Copy CSS;如果你想把兩者一起複製,就點選Copy complete snippet。
- 把這個連結貼進你 HTML 文件的 head 中,放在任何依賴它的樣式表之上。
- 把這兩個 CSS class(工具產生的標題 class 與內文 class)貼進該頁面所使用的樣式表中。
- 把標題 class 套用到展示用的元素,把內文 class 套用到內文文字,接著重新載入頁面,確認每個字重確實有正確渲染。
- 確認通用備援字型(襯線家族用serif,其餘的用sans-serif)在網路請求緩慢或被封鎖時,依然能讓文字保持可讀。
如果你的瀏覽器,或某個內嵌情境——一個位在嚴格父頁面內的 iframe、某些 CMS 編輯器、某些資訊站瀏覽器——拒絕剪貼簿存取,同樣的文字仍然會顯示在結果面板中,供你手動選取。這個工具不會回報虛假的成功訊息;它只會讓內容保持可見,讓你能手動複製。
為什麼 CSS Fonts API 不需要金鑰
Google 為處理字型公開了兩個不同的介面,其中只有一個需要驗證。
| 介面 | 端點 | 用途 | 需要 API 金鑰嗎? |
|---|---|---|---|
| 公開的 CSS Fonts API | fonts.googleapis.com/css2 | 為瀏覽器提供樣式表與 @font-face 宣告 | 不需要——匿名的 GET 請求 |
| 目錄 Developer API | developers.google.com/fonts的工具與中繼資料端點 | 以程式化方式查詢目錄、列出字型家族、字重、文字系統 | 需要——Google 的 Developer API 金鑰 |
| 瀏覽器的 link 標籤 | 由配對工具產生 | 在執行期載入一份樣式表 | 不需要 |
字型配對產生器所複製的樣式表,是一次對公開 CSS Fonts API 的一般瀏覽器請求。Google 一般文件中提到的那把金鑰,把關的是目錄中繼資料查詢——也就是像建置腳本用來列舉可用字型家族那種查詢。你的頁面永遠不會傳送那種查詢,所以它不需要附帶金鑰。CSS2 URL 的完整語法——多個字型家族、每個家族的多個字重、軸數值組合、display 參數——記載於Google Fonts CSS2 reference中;你複製到的連結,只是那套語法涵蓋你所要求那個字重的一個最小實例。
上線前該檢查的隱私、CSP 與效能事項
一個匿名連結,依然是對第三方網域的一次網路請求,因此有幾項檢查,應該放進你的上線前檢查清單中。
- 隱私與同意。 當樣式表與底層的字型檔案載入時,訪客的瀏覽器會連上 Google 所控制的端點。在啟用這個連結之前,請先檢視你所在轄區的同意規範,以及你自己的同意管理設計。
- 內容安全性政策。 如果你的網站有部署 CSP,請把樣式表放行給fonts.googleapis.com,並把樣式表所拉取的字型二進位檔放行給fonts.gstatic.com。如果兩者沒有同時放行,@font-face 宣告雖然能解析,但檔案請求會被封鎖。
- 授權審查。 Google Fonts 的字型家族各自有獨立的授權條款;在把它用進範本、應用程式,或會被重新散布的文件之前,請透過該字型家族的清單,或像Fontsource這樣的獨立目錄,確認署名義務、版本,以及任何商標考量。這款配對產生器並不會附帶任何授權文字。
- 需要時自行代管。 如果你的環境不允許第三方請求,請自行代管經核准的字型檔案,並自己撰寫 @font-face 規則。這個工具不會產生自行代管用的檔案,因此那條路徑需要另外一套工作流程。
- 效能。 display=swap能讓備援文字保持可見,但當字型的量測參數不同時,替換動作仍然會造成版面位移。請為標題預留版面高度,只請求實際會用到的字重,並用實際上線的頁面來量測,而不要把預覽當成效能測試。
- 可靠性。 如果請求失敗,從每個 class 繼承而來的通用備援字型,會讓文字保持可讀——這個備援機制是內建的,不是額外的一個步驟。
這段程式碼片段其餘的部分在做什麼
這段完整的程式碼片段,捆綁了三項各自獨立的內容:樣式表連結、標題 class,以及內文 class。每一項都可以單獨複製或單獨使用。
| 複製動作 | 會寫出什麼 | 該放到哪裡 |
|---|---|---|
| Copy link | 單一一個link rel="stylesheet"標籤 | HTML head 內部 |
| Copy CSS | 兩條 class 規則,附帶具名字型家族與一個通用備援字型 | 該頁面所使用的樣式表 |
| Copy complete snippet | link 標籤加上一個包含兩條規則的行內 style 區塊 | HTML 文件,依個人偏好放在 head 或 body 中 |
每一個 class,其具名字型家族清單的結尾,都會依所選的配對,以一個通用的serif或sans-serif關鍵字收尾。正是這個備援機制,在請求被封鎖、網路緩慢,或某個 worker 剝除了第三方網域時,讓段落與標題保持可讀。這也是為什麼那八組精選選項,能被誠實地評估——如果所選的配對失效,這個頁面會優雅降級為一個可預期的系統字型,而不是一個空白方塊。
配對名稱與情境標籤,描述的是編輯上的意圖;字型家族名稱與字重,則是經過對照 Google Fonts 目錄與一個獨立目錄稽核過的。如果你想在上線前做更深入的交叉核對,可以把產生出來的參數,與該字型家族目前的清單做比對,在一個無痕分頁中開啟產生出來的 URL,確認它回傳有效的 CSS,並用你平常的無障礙與效能稽核流程跑一遍這個頁面。一旦這些都通過,這個不附帶任何 API 金鑰的連結,就會繼續以預覽時展示的方式,為你的訪客正常運作。
想深入了解,請參閱Does a Font Pairing Generator Contact Google in Preview?。