如何取得 Facebook System User Token
整理取得 Facebook App Token 和 System User Token 的整套流程,內容包含:建立 App、拿到 App Token、在 Business 建 System User、把廣告帳號權限給 System User、把 App 掛進 Business、開 ads_read/ads_management 權限,最後產生能真正打 Marketing API 的 System User Token。
前言
最近在處理公司內的 n8n 自動化流程,目標是讓廣告數據能每天自動寫入報表,減少手動整理的負擔。查了一輪之後確認 Facebook 提供 Marketing API,看起來能滿足需求,於是開始研究如何取得資料。正式動手後才發現授權流程、Token 種類與權限模型比想像中複雜得多,一步走錯就會卡在空資料或權限不足。這份筆記主要是為了獲取廣告成效,所以許多都是圍繞在這個需求上,流程複雜筆記下來。
TL;DR
- 建 App,開 Marketing API
- 在 App 申請 ads_read / ads_management
- 在 Business Manager 建 System User
- 在 Business Manager:
- 把 ad account 指派給 System User
- 把 App 指派給 System User
- 在 System User 頁面,選該 App,勾 ads_read / ads_management → 產生 System User Token
- 用這支 Token 打 act_xxx 相關 Marketing API endpoint
準備工作
建立一個 Facebook 應用程式 並且打勾使用行銷 API

以及完成企業管理平台的商家驗證

為何需要 System User
程式需要一個不依賴個人帳號、可長期存取的授權來源。一般使用者 Token 會過期,而且權限受個人帳號本身限制,無法在自動化流程中穩定運作。

App Token 只能讀 App 自身資訊,不能讀取任何廣告帳號資料。System User 屬於 Business 的系統帳號,可以被指派廣告帳號的實際操作或讀取權限,再由 App 授與 ads_read/ads_management 的 scope,最終取得不會過期,完整權限的 Access Token,讓自動化流程能在無人干預的情況下穩定呼叫 Marketing API。

建立 System User 取得 Token
進去企業管理平台,建立系統工作人員

指派應用程式獲得控制權

接著就可以產生權杖

按照這個步驟就可以取得 Token 了
指派廣告給 System User
接著就可以將 System User 指派為廣告管理員,就可以讓這個 Token 有存取該廣告的權限了。

碎碎念
Facebook 文件寫的真的很爛,介面 Bug 也一堆,神奇的是,如果你的 APP 沒發佈是可以存取 API 的,如果你要對外開放才會需要 Publish 可是你就會要過那個長長的審核流程(我也沒跑過)如果只是公司內部使用,其實這樣就可以了。