iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
自我挑戰組

30天學習n8n:從入門到實作的自動化挑戰系列 第 19

用過這麼多節點,今天終於來好好講清楚什麼是 API

  • 分享至 

  • xImage
  •  

在之前那麼多實作裡,我們連接了很多外部服務的節點,像是 LINE、Gmail、Telegram 等等,連接時都要取得我們的憑證才能繼續下一步,每次取得都是照抄步驟也不理解為什麼需要這東西,直接連不是很輕鬆嘛?為什麼一定要申請一個奇怪的 key?

我們今天就來了解一下我們連接時需要用到的API 是什麼?為什麼我們需要 API Key 或 Access Token?它們又有什麼差別?

什麼是 API?

API(Application Programming Interface,應用程式介面)是不同軟體系統之間溝通的橋樑。它定義了一組規則和方法,讓一個程式可以呼叫另一個程式的功能或取得資料,而不需要知道對方內部的實作細節。
簡單比喻就是:

  • 你去餐廳點餐,菜單就是 API,告訴你有哪些選項和怎麼點。
  • 廚房是後端系統,你不需要知道廚房怎麼做菜,只要依照菜單點餐,廚房就會做出你想要的餐點。
  • 你跟廚房之間的橋樑就是服務生(API),負責把你的需求傳達給廚房,並把料理送回給你。

在程式世界中,API 讓你的應用程式能夠呼叫其他服務的功能,比如取得天氣資訊、發送訊息、讀寫文件等等。

為什麼需要 API Key 和 Access Token?

因為 API 會讓不同的應用程式互相串接,必須知道你是誰,還要確保你有權限使用這些功能,否則就會有安全風險,所以,API 服務提供者會要求你帶上「身份憑證」才能存取,常見的有 API Key 與 Access Token

API Key 是什麼?

API Key 是一組固定字串,像是你的「身份證號碼」,用來識別你是誰,服務提供者會在你註冊服務時發給你 API Key,你必須在每次呼叫 API 時帶上它,所以API Key 的作用就是「辨識身份」和「流量管理」,有助於控制誰在使用服務,防止濫用。

通常 API Key 不會自動過期,除非你自己重置或撤銷,因為它是固定且長期有效的,如果被外洩,會有安全風險,需妥善保存。

  • 適合用在:簡單的應用或服務(例如:公開資料查詢、某些 Bot),不需要複雜授權。

Access Token 是什麼?

Access Token 是一種「動態授權憑證」,代表你已經通過某種授權流程,並被允許執行特定的操作,通常Access Token 是透過 OAuth 等驗證流程取得,用來替代輸入帳號密碼,它會包含使用者授權範圍(scope),例如只能讀取郵件,不能刪除郵件。

Access Token 有有效期限,過期後需要重新取得,提升安全性,有了 Access Token,你可以在不暴露使用者密碼的情況下,安全地呼叫 API。

  • 適合用在:需要用戶授權的服務(Google、LINE、Facebook 等),尤其涉及用戶個資或操作權限。

API Key 與 Access Token 的比較

特性 API Key Access Token
授權方式 固定憑證 動態授權
是否會過期 不會(除非手動重置) 會,有期限
安全性 較低,一旦外洩易被濫用 較高,限制使用範圍和有效期
適用情境 公開資料或簡單服務 涉及用戶隱私及敏感操作
取得方式 直接申請取得 需透過 OAuth 或類似流程取得

以我們之前做過的服務為例:

  • OpenWeatherMap:你申請帳號後會拿到一組 API Key,這組 Key 負責告訴服務「這是你的請求」,你可以用它去查天氣,但沒有更細的權限控管。
  • Google API(例如 Gmail 或 Google Sheets):因為牽涉使用者的私人資料,需要用戶同意授權,取得 Access Token 後才可讀寫資料。Access Token 會在一定時間內過期,保護使用者資料安全。
  • LINE Bot:你會取得 Channel Access Token(類似 Access Token),用來讓你的 Bot 發送訊息給用戶,這也是動態授權憑證,但line有分為「短效型 Token」和「無效期型 Token」兩種。
  • Telegram Bot:每次你要用程式對 Telegram 發出指令,都要帶上這個 Token。這組 Token 不會過期,也不需要用戶授權,性質上就像 API Key,也因為它擁有完整的控制權限,一樣需要妥善保管,避免被濫用。

總結

API 是我們與服務之間溝通的語言,而 API Key 和 Access Token 則是我們的「通行證」,它讓服務提供者知道「你是誰」和「你被允許做什麼」,既確保安全,也方便管理。


上一篇
用 n8n 打造天氣小幫手,每天自動發送 LINE 天氣提醒
系列文
30天學習n8n:從入門到實作的自動化挑戰19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言