在之前那麼多實作裡,我們連接了很多外部服務的節點,像是 LINE、Gmail、Telegram 等等,連接時都要取得我們的憑證才能繼續下一步,每次取得都是照抄步驟也不理解為什麼需要這東西,直接連不是很輕鬆嘛?為什麼一定要申請一個奇怪的 key?
我們今天就來了解一下我們連接時需要用到的API 是什麼?為什麼我們需要 API Key 或 Access Token?它們又有什麼差別?
API(Application Programming Interface,應用程式介面)是不同軟體系統之間溝通的橋樑。它定義了一組規則和方法,讓一個程式可以呼叫另一個程式的功能或取得資料,而不需要知道對方內部的實作細節。
簡單比喻就是:
在程式世界中,API 讓你的應用程式能夠呼叫其他服務的功能,比如取得天氣資訊、發送訊息、讀寫文件等等。
因為 API 會讓不同的應用程式互相串接,必須知道你是誰,還要確保你有權限使用這些功能,否則就會有安全風險,所以,API 服務提供者會要求你帶上「身份憑證」才能存取,常見的有 API Key 與 Access Token
API Key 是一組固定字串,像是你的「身份證號碼」,用來識別你是誰,服務提供者會在你註冊服務時發給你 API Key,你必須在每次呼叫 API 時帶上它,所以API Key 的作用就是「辨識身份」和「流量管理」,有助於控制誰在使用服務,防止濫用。
通常 API Key 不會自動過期,除非你自己重置或撤銷,因為它是固定且長期有效的,如果被外洩,會有安全風險,需妥善保存。
Access Token 是一種「動態授權憑證」,代表你已經通過某種授權流程,並被允許執行特定的操作,通常Access Token 是透過 OAuth 等驗證流程取得,用來替代輸入帳號密碼,它會包含使用者授權範圍(scope),例如只能讀取郵件,不能刪除郵件。
Access Token 有有效期限,過期後需要重新取得,提升安全性,有了 Access Token,你可以在不暴露使用者密碼的情況下,安全地呼叫 API。
特性 | API Key | Access Token |
---|---|---|
授權方式 | 固定憑證 | 動態授權 |
是否會過期 | 不會(除非手動重置) | 會,有期限 |
安全性 | 較低,一旦外洩易被濫用 | 較高,限制使用範圍和有效期 |
適用情境 | 公開資料或簡單服務 | 涉及用戶隱私及敏感操作 |
取得方式 | 直接申請取得 | 需透過 OAuth 或類似流程取得 |
以我們之前做過的服務為例:
API 是我們與服務之間溝通的語言,而 API Key 和 Access Token 則是我們的「通行證」,它讓服務提供者知道「你是誰」和「你被允許做什麼」,既確保安全,也方便管理。