Purple Portal API:您可以實現的應用
針對 IT 經理和網路架構師利用 Purple Portal API 的技術參考指南。本指南詳細介紹了可用的端點、驗證方式,以及將顧客 WiFi 數據與企業系統整合以提升商業智慧和營運效率的實際應用案例。內容涵蓋 REST API 和 Webhook 整合模式,並提供來自餐旅業、零售業和活動產業的具體案例研究。
收聽此指南
查看播客逐字稿

執行摘要
對於多據點場域(如飯店、連鎖零售、體育場館和會議中心)的 IT 主管而言,訪客 WiFi 網路不僅僅是一項簡單的便利設施。它是一個豐富且持續補充的第一方數據源,能為行銷、營運和客戶體驗帶來可衡量的業務影響。Purple Portal API 提供了所需的程式化介面,以實現大規模釋放此價值。它允許技術團隊超越內建的分析儀表板,建立強大、自動化的整合,將符合 GDPR 規範的訪客數據直接導入核心業務系統,從 CRM 平台、行銷自動化工具到會員計劃和商業智慧數據倉庫。
本指南為解決方案架構師、IT 經理和資深開發人員提供了實用且具操作性的參考。它詳細介紹了身分驗證模型、可用端點、整合模式以及實際部署情境,展示了 Purple WiFi API 如何將 WiFi 部署從成本中心轉變為策略性數據資產。無論您是首次評估該 API,還是計劃進行生產級的整合,本文檔都將提供您充滿信心推進所需的技術基礎和決策框架。
技術深度剖析
身分驗證與 API 版本控制
Purple Portal API 使用 API Key 身分驗證,這是一種簡單且安全的模型,非常適合伺服器對伺服器(server-to-server)的整合。與需要權杖交換和重新整理週期的 OAuth 2.0 流程不同,API Key 身分驗證只需在請求標頭中包含一個靜態金鑰。這種簡單性減少了整合開銷,且只要將金鑰安全儲存並作為標準憑證管理原則的一部分定期輪換,就不會損及安全性。
目前的生產版本為 v1.7,此版本相較於 v1.6.2 引入了幾項重要改進。最重要的是,使用者數據物件中的 unsubscribed 屬性現在能清楚區分「先前已訂閱但主動取消訂閱行銷資訊的使用者」與「從未訂閱過的使用者」。這種區分對於符合 GDPR 規範以及精確的受眾細分至關重要。此外,當找不到數據時,Visitors 和 Venues 端點現在會傳回 HTTP 200 OK 回應,而不是 404 Not Found,這在以前常導致監控和錯誤處理邏輯上的混淆。
可用的端點
Portal Company API 公開了三個 IT 團隊會經常互動的主要端點類別。
| 端點 | 方法 | 用途 |
|---|---|---|
/visitors |
GET | 檢索訪客設定檔,包括聯絡數據、人口統計資料和造訪歷史記錄 |
/venues |
GET | 檢索場域層級的數據和設定中介數據 |
/unsubscribes |
GET | 檢索已選擇退出行銷通訊的使用者清單 |
所有端點均以 JSON 格式傳回資料。visitors 端點是最常用的端點,因為它能完整呈現 Captive Portal 驗證流程中所收集到的訪客個人資料。這包括名字、姓氏、電子郵件地址、性別、出生日期、行動電話號碼、郵遞區號、驗證提供者(例如:註冊表單、社群登入)、每個場域的造訪次數,以及在 Splash 頁面上設定的任何自訂欄位。
速率限制
Purple Portal API 的一個關鍵架構優勢在於沒有速率限制。該平台旨在支援任何數量的請求或交易,非常適合需要處理數千個場域記錄或數百萬個訪客個人資料的大型部署。這消除了與其他平台整合時常見的限制,並且在您的用戶端程式碼中無需進行請求節流或退避邏輯。
整合模式:拉取 (Pull) 與 推送 (Push)
Purple WiFi API 支援兩種截然不同的整合模式,各自適用於不同的使用場景。了解在特定情境下應套用哪種模式是您需要做出的最重要架構決策。
REST API 拉取模式涉及您的系統向 API 端點發送隨選或排程的請求以檢索資料。這是批次處理、報表和商業智慧的正確方法。例如,每晚執行一次的 ETL 指令碼,用於拉取前一天的所有訪客資料並將其載入到資料倉儲中。拉取模式讓您能完全控制檢索資料的時間和數量。
Webhook 推送模式則是在特定事件發生時(具體而言,當訪客在 WiFi 網路上進行驗證時),由 Purple 立即將資料傳送到您的系統。您的系統必須提供一個公開可存取、受 SSL 保護的 HTTP 端點(「監聽器」),以接收並處理這些 JSON POST 承載資料。對於任何需要近乎即時資料的使用場景,Webhook 模式是正確的選擇,例如觸發個人化的歡迎訊息、在 CRM 中更新客戶的「最後上線」狀態,或通知餐旅經理 VIP 訪客已到達。

Webhook 承載資料結構
Purple Webhook 傳遞的 JSON 承載資料結構分為四個主要物件,每個物件都為驗證事件提供不同維度的背景資訊。
| 物件 | 關鍵欄位 | 說明 |
|---|---|---|
client |
mac, userAgent |
裝置層級的識別碼 |
company |
id, name, uniqId |
您的公司帳戶詳細資料 |
venue |
id, name, latitude, longitude |
發生驗證的具體位置 |
session |
authenticationTime |
驗證事件的 ISO 8601 時間戳記 |
user |
email, firstName, lastName, gender, provider, visitCountForVenues, customFields |
完整的訪客個人檔案資料 |
對於多據點營運商而言,user.visitCountForVenues 物件特別具有價值。它提供了每個場域的造訪次數以及 firstVisit 和 lastVisit 時間戳記,讓您能夠在驗證當下識別出首次造訪者與忠實的回頭客,而無需進行任何額外的 API 呼叫。
實作指南
前提條件與設定
存取 Portal API 需要 Engage 授權。取得授權後,請在 Purple 傳送門的設定中產生您的 API 金鑰。對於初始開發與測試,建議使用 Postman;Purple 提供了專用的設定指南,用以配置正確的環境變數與請求標頭。對於偏好伺服器端指令碼起步的團隊,也提供了一個 PHP 範例檔案。
設定 Webhook 整合
部署 Webhook 整合包含五個步驟。第一,建立您的接聽程式端點並將其部署到可公開存取且受 SSL 保護的 URL。無伺服器函數(AWS Lambda、Azure Functions 或 Google Cloud Functions)是架構上健全的選擇:它能自動擴充、在低流量時成本極低,且無需配置即可處理並行請求。第二,在 Purple 傳送門中導覽至「管理」>「場域」>「Webhooks」以驗證接聽程式 URL。Purple 將傳送一個測試請求,以確認該端點可供存取並傳回所需的 wifiWebhookListener: 1 標頭。第三,在傳送門中建立或編輯 LogicFlow,並新增一個 Webhook 動作節點,選擇您已驗證的 URL。第四,確保 LogicFlow 已設定為「上線」狀態。第五,將 LogicFlow 附加至相關的 Access Journey。從此時起,該歷程上的每次訪客驗證都將觸發您的 Webhook。
處理重試與等冪性
您的接聽程式必須設計為能夠處理分散式系統的實際情況。如果您的接聽程式無回應(逾時超過 10 秒)或傳回錯誤狀態,Purple 將在三小時後重試失敗的 Webhook 傳送。這意味著您的接聽程式可能會多次收到相同的事件。此外,單次訪客造訪可能會觸發多次驗證事件 — 例如,當裝置在螢幕鎖定後重新連線時,或者當使用者在存取點之間漫遊時。因此,您的處理邏輯必須具備等冪性:套用同一個事件兩次應產生與套用一次相同的結果。常見的實作模式是在執行動作(例如傳送歡迎電子郵件)之前,先檢查在定義的時間範圍內是否已針對特定的使用者 ID 執行過該動作。
最佳實踐
在任何生產環境中部署 Purple Portal API 時,都應遵循幾項原則。請務必針對最新的 API 版本 (v1.7) 進行部署,並在新版本發布時更新您的 URL 路徑與回應解析邏輯。請將您的 API Key 視為敏感憑證:將其儲存在金鑰管理工具(例如 AWS Secrets Manager 或 Azure Key Vault)中,而非儲存在原始碼或共享系統的環境變數中。對於 Webhook 監聽器,請針對每個傳入的承載資料 (payload) 與回應實作結構化記錄,以利於偵錯與稽核追蹤。請尊重使用者物件中的 unsubscribed 和 unsubscribedDate 欄位;針對已選擇退出的使用者執行行銷活動將違反 GDPR。最後,請針對所有邊緣情況測試您的整合:沒有電子郵件地址的使用者、自訂欄位為 null 的使用者,以及未按時間順序送達的驗證事件。

疑難排解與風險緩釋
Webhook 整合中最常見的失敗模式是監聽器回應緩慢或無法使用。如果端點持續在 10 秒內未做出回應,Purple 將在長時間無回應後自動停用該 Webhook,此時需要在入口網站中進行手動重新驗證。為了降低此風險,請在與監聽器相同的伺服器上實作健康檢查端點,並將其納入您的基礎架構監控中。確保您的監聽器在傳回 200 OK 回應之前僅執行最少量的同步處理;將任何繁重的運算或下游 API 呼叫轉移到非同步佇列中。
對於 REST API 整合,主要風險在於如果排程的提取工作在背景無聲失敗,會導致下游系統中的資料過期。請在您的 ETL 指令碼上實作警報機制,以便在執行失敗或意外未產生任何輸出時通知維運團隊。從 API v1.6.2 遷移到 v1.7 時,請稽核所有引用 unsubscribed 欄位和 Unsubscribes 端點的程式碼,因為屬性名稱已在 v1.7 中從 unsubcribers 修正為 unsubscribers。
投資報酬率與商業影響
將系統與 Purple Portal API 整合的商業效益已在多個垂直產業中得到證實。在旅宿業中,使用 Webhook 觸發 CRM 整合的飯店報告指出,與一般群發活動相比,個人化溝通的電子郵件開啟率有顯著提升,因為訊息是在關聯性最高的時刻(即房客親自到店時)送達。在零售業中,將顧客 WiFi 數據連接到會員計劃,使營運商能夠識別並獎勵高頻率訪客,進而提高平均消費額和重複造訪率。對於大型公共場所和會議中心,API 驅動的分析提供了證明贊助價值和優化特許經營攤位佈局所需的細粒度人流量數據。
Purple WiFi API 沒有速率限制,這意味著整合成本是隨著您的基礎設施規模而擴展,而不是隨著您處理的數據量而增加。對於每天處理數十萬次驗證的國家零售連鎖店而言,與按 API 呼叫次數收費或施加吞吐量限制的平台相比,這是一個實質性的優勢。因此,架構良好的 Purple API 整合的總擁有成本主要是一次性的開發成本和監聽器(listener)的持續基礎設施成本,這兩者通常在第一季內僅透過提高行銷轉換率就能回收。

案例研究
案例研究 1:旅宿業 — Whitbread Group
Whitbread 是英國最大的飯店和餐飲公司,在其 Premier Inn 和餐飲物業中營運著數千個顧客 WiFi 存取點。藉由將 Purple Portal API 與其 CRM 平台整合,該集團能夠建立一個統一的顧客輪廓,將線上預訂數據與在 WiFi Captive Portal 擷取的實體造訪行為相結合。Webhook 整合在每次顧客驗證時觸發,以最新的造訪時間戳記、場地位置和裝置資訊豐富 CRM 記錄。這使行銷團隊能夠按近期性、頻率和位置對受眾進行細分,並觸發高度個人化的重新互動活動。關鍵的技術成果是將顧客抵達與進入主動行銷旅程之間的時間,從 24 小時(在先前的批次輪詢模式下)縮短到 60 秒以內。
案例研究 2:零售業 — 多據點時尚零售商
一家擁有 80 多家門市的國家級時尚零售商部署了 Purple Portal API,以解決其客戶數據策略中的關鍵缺口:他們擁有強大的電子商務數據,但對店內訪客行為幾乎一無所知。藉由透過每晚的 ETL 程序將 Purple 訪客 WiFi API 連接到他們現有的數據倉庫,他們首次構建了跨管道的客戶視圖。每晚針對每家門市查詢 /visitors 端點,並使用電子郵件地址作為共同金鑰,將數據與電子商務交易記錄進行合併。在三個月內,分析團隊發現連接到店內 WiFi 的客戶在下一次線上購買時的平均訂單價值高出 34%,這為進一步投資店內數位體驗提供了令人信服的商業案例。該整合不需要對現有的電子商務基礎設施進行任何更改,證明了 REST API 拉取模式的低摩擦特性。
案例研究 3:活動 — 會議中心
英國一家大型會議中心使用 Purple Portal API,首次向贊助商提供經過驗證的人流量數據。以前,贊助商報告依賴人工計數和徽章掃描,這既耗費人力又不準確。藉由透過 API 公開每個區域(對應到 Purple 平台中的場地 ID)的聚合、匿名訪客計數,活動團隊可以向贊助商提供即時儀表板,顯示贊助區域的停留時間和訪客量。在活動期間,每 15 分鐘透過 REST API 拉取一次數據,並顯示在自訂的贊助商入口網站上。這項功能直接使第一年的贊助續約率提高了 22%,因為贊助商現在可以使用經過驗證的第一方數據來量化其活動的觸及率。
關鍵定義
Webhook
一種自動化機制,當特定事件發生時,伺服器會透過 HTTP POST 請求,向另一個應用程式發送即時資料通知(推播)。
在 Purple 的應用場景中,當訪客在 WiFi 網路進行驗證時,Webhook 會立即向您的系統發送包含訪客資料的 JSON 負載。這對於即時行銷和 CRM 更新至關重要。
REST API
一種用於建置 Web 服務的標準化架構風格,允許一個系統使用標準的 HTTP 方法(例如 GET 和 POST)向另一個系統請求(或拉取)資料。
IT 團隊使用 Purple REST API 撰寫腳本來拉取批次訪客和場域資料,以便在 Power BI 或 Tableau 等商業智慧工具中進行分析。
API Key Authentication
一種安全性模型,透過在每次請求中(通常在 HTTP Authorization 標頭中)提供唯一的安全權杖(金鑰)來授予對 API 的存取權限。
這比 OAuth 更簡單,非常適合伺服器對伺服器的整合。您的腳本必須在請求標頭中包含有效的 API 金鑰,才能存取 Purple 的資料。
Idempotency
一種操作屬性,意即該操作可以重複執行多次,而不會改變初始執行以外的結果。
您的 Webhook 監聽程式應具備冪等性(Idempotency)。如果它收到兩次相同的驗證事件(這可能因重試或裝置重新連線而發生),它不應該(例如)發送兩封歡迎電子郵件。
JSON (JavaScript Object Notation)
一種輕量級、基於文字的資料交換格式,易於人類閱讀,也易於機器解析和產生。
Purple API 和 Webhooks 以 JSON 格式傳遞所有資料。您的應用程式需要解析此 JSON,以擷取電子郵件、姓名和造訪次數等欄位。
LogicFlow
Purple 的視覺化、拖放式工具,用於建立自動化行銷和互動工作流程,可根據訪客行為和人口統計資料觸發對應的操作。
您可以使用 LogicFlow 來定義訪客旅程。您可以在此處附加您的 Webhook,指示系統在使用者達到其存取旅程的「上網」狀態時觸發該 Webhook。
Captive Portal
使用者在獲准存取公共 WiFi 網路之前,必須看到並與之互動的網頁,通常需要進行驗證或資料收集。
Purple 平台為 Captive Portal 提供支援,使用者在此頁面輸入的資料(例如姓名、電子郵件、自訂欄位)將可透過 Portal API 取得。
GDPR (General Data Protection Regulation)
歐盟一項全面的資料隱私法規,旨在規範歐盟居民個人資料的收集、處理和儲存。
Purple API 提供了建置符合 GDPR 規範之整合的工具,例如尊重使用者的取消訂閱狀態,以及為當事人存取請求啟用資料匯出功能。v1.7 API 更新特別提高了取消訂閱欄位的清晰度,以支援合規性。
ETL (Extract, Transform, Load)
一種資料整合程序,涉及從來源系統擷取資料、將其轉換為所需格式,然後將其載入到目的地系統(例如資料倉儲)中。
REST API 拉取模式通常實作為 ETL 程序,其中資料是從 Purple 的 /visitors 端點擷取,進行轉換以符合目的地結構,然後載入到 CRM 或資料倉儲中。
範例
一家擁有 200 間客房的飯店希望自動將新的顧客 WiFi 使用者加入其 Salesforce Marketing Cloud 旅程中,並發送歡迎電子郵件。
- 在 Purple Portal 中,驗證指向安全端點(例如 AWS Lambda 上的無伺服器函數)的新 Webhook URL。2. 建立一個包含 Webhook 節點的「線上」LogicFlow,並設定為使用已驗證的 URL。3. 將此 LogicFlow 指派給該飯店的顧客 WiFi 存取旅程。4. 無伺服器函數在顧客驗證時接收 JSON 承載資料,擷取使用者的電子郵件和姓名,並向 Salesforce Marketing Cloud 發送 API 呼叫,將使用者加入「新房客」旅程中。5. 該函數在 10 秒逾時限制內向 Purple 回傳 200 OK 回應。
一家擁有 50 家分店的連鎖零售商希望在 Power BI 中建立一個中央儀表板,以分析所有據點的訪客趨勢。
- 建立一個在每晚排程執行的指令碼(例如使用 Python)。2. 該指令碼使用公司的 API 金鑰向 Purple Portal API 進行驗證。3. 它會遍歷 50 個場地 ID 中的每一個,向 /visitors 端點發送呼叫,以檢索前一天的所有訪客數據。4. 指令碼將這些數據轉換並載入到中央資料倉儲(例如 Azure SQL 或 BigQuery)中。5. 將 Power BI 連接到該資料倉儲,以建立跨場地的分析儀表板。
練習題
Q1. 某體育場希望在 VIP 季票持有者連線至 WiFi 時識別其身分,並傳送通知至最近的接待經理儀表板。他們應該使用哪種整合模式?為什麼?
提示:請考量通知所需的速度,以及該動作是否由事件觸發。
查看標準答案
他們應該使用 Webhook(推送)模式。這是一個即時性需求:當 VIP 連線時,Webhook 會立即觸發並傳送至某個服務,該服務會對照季票持有者資料庫查詢使用者的電子郵件或 MAC 位址。如果找到相符項,它會將通知推送至相關的接待儀表板。REST API(拉取)模式會太慢,因為它依賴定期輪詢,可能會引入數分鐘或數小時的延遲。
Q2. 您的任務是為您的全國連鎖咖啡店建立一份每日報告,列出造訪次數前 10 名的場地。您將如何從 Purple 檢索所需的資料?
提示:這是即時報告還是批次報告需求?您會查詢哪個端點?
查看標準答案
這是一個批次報告任務,因此使用 REST API(拉取)模式是合適的。排程指令碼會每日執行,查詢每個場地的 /visitors 端點,彙總前一天的造訪次數,然後計算出前 10 名。不需要 Webhooks 提供的近乎即時的通知。由於沒有速率限制,因此可以在單次指令碼執行中查詢所有場地,而無需擔心節流問題。
Q3. 您的 Webhook 接收器端點發生故障。您檢查記錄並看到逾時錯誤。根據 Purple 的文件,最可能的原因是什麼?其兩個直接後果是什麼?
提示:請思考接收器的效能需求,以及當 Purple 無法傳遞承載資料時會怎麼做。
查看標準答案
最可能的原因是接收器花費超過 10 秒的時間來處理傳入的 JSON 承載資料並傳回 200 OK 回應。兩個直接後果是:(1) Purple 將停止嘗試傳送目前的請求,並將其重新排入佇列以在 3 小時後重試,這意味著資料傳遞會延遲;(2) 如果這種情況持續很長時間,Purple 將自動完全停用該 Webhook,需要先在入口網站中進行手動重新驗證才能重新啟用。
繼續閱讀本系列
CommScope Ruckus 與 Purple WiFi 整合:安裝與設定指南
本技術參考指南為 CommScope Ruckus 架構與 Purple WiFi 的整合提供了權威的設定指南。其中詳細介紹了使用 Guest WiFi Captive Portal、透過 802.1X 的安全員工 WiFi,以及使用 Ruckus Dynamic PSK 的多租戶網路隔離的逐步部署步驟。
Allied Telesis 基地台與 Purple WiFi 整合
本指南提供將 Allied Telesis TQ 系列基地台與 Purple WiFi 整合的完整設定指南。內容涵蓋外部 Captive Portal 重新導向、802.1X RADIUS 驗證,以及使用私有預共用金鑰 (PPSK) 進行動態 VLAN 導向,以實現安全的多租戶部署。
Grandstream GWN Access Points 與 Purple WiFi 整合
本權威技術參考指南詳細說明如何將 Grandstream GWN Access Points 與 Purple 的 Guest WiFi 和分析平台進行整合。內容涵蓋 Grandstream Captive Portal 設定、RADIUS AAA 設定、Walled Garden 設定、具備動態 VLAN 導向的安全員工 802.1X 驗證,以及多租戶 PPSK 分段,為部署大規模訪客與員工 WiFi 的 MSP 和 IT 團隊提供具體且逐步的指引。