如何取得 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。

如何取得 Facebook System User Token
Photo by Simon Kadula / Unsplash

前言

最近在處理公司內的 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

建立 System User 取得 Token

進去企業管理平台,建立系統工作人員
建立 System User
指派應用程式獲得控制權
授權應用程式
接著就可以產生權杖
授予權限
按照這個步驟就可以取得 Token 了

指派廣告給 System User

接著就可以將 System User 指派為廣告管理員,就可以讓這個 Token 有存取該廣告的權限了。
指派使用者

碎碎念

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

參考資料

洞察報告 API
Ad Account, Insights