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身份验证,这是一种简单且安全的模型,非常适合服务器到服务器的集成。与需要令牌交换和刷新周期的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认证过程中收集的丰富访客资料数据。这包括名字、姓氏、电子邮件地址、性别、出生日期、手机号码、邮政编码、认证提供商(例如注册表单、社交登录)、每个场馆的访问次数以及启动页面配置的任何自定义字段。
速率限制
Purple Portal API的一个关键架构优势是没有速率限制。该平台设计为支持任意数量的请求或交易,使其适用于脚本可能需要处理数千条场馆记录或数百万访客资料的大规模部署。这消除了与其他平台集成时常见的约束,不再需要在客户端代码中实现请求节流或退避逻辑。
集成模式:拉取与推送
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 Key。对于初始开发和测试,推荐使用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附加到相关的访问旅程。从此刻起,该旅程上的每次访客认证都将触发您的Webhook。
处理重试与幂等性
您的监听器必须设计为能处理分布式系统的现实情况。如果您的监听器无响应(超时超过10秒)或返回错误状态,Purple将在三小时后重试失败的Webhook传递。这意味着您的监听器可能多次收到同一事件。此外,一次访客访问可能触发多个认证事件——例如,当设备在屏幕锁定后重新连接,或当用户在接入点之间漫游时。因此,您的处理逻辑必须是幂等的:对同一事件应用两次应产生与一次相同的效果。常见的实现模式是在执行操作(如发送欢迎邮件)之前,检查对于给定用户ID在定义的时间窗口内是否已执行过该操作。
最佳实践
在Purple Portal API的任何生产部署中,都应遵循几条原则。始终基于最新的API版本(v1.7)进行部署,并在新版本发布时更新您的URL路径和响应解析逻辑。将您的API Key视为敏感凭证:将其存储在密钥管理服务(如AWS Secrets Manager或Azure Key Vault)中,而不是源代码或共享系统的环境变量中。对于Webhook监听器,对每个传入负载和响应实施结构化日志记录,以方便调试和审计跟踪。尊重用户对象中的unsubscribed和unsubscribedDate字段;对已退订用户执行营销操作构成GDPR违规行为。最后,针对各种边缘情况测试您的集成:没有电子邮件地址的用户、自定义字段为空的用户,以及未按时间顺序到达的认证事件。

故障排除与风险缓解
Webhook集成中最常见的故障模式是监听器响应缓慢或不可用。如果端点持续无法在10秒内响应,Purple将在长时间无响应后自动禁用该Webhook,需在门户中手动重新验证。为缓解此风险,在与监听器相同的服务器上实现一个健康检查端点,并将其纳入基础架构监控中。确保监听器在返回200 OK响应之前只执行最小的同步处理;将任何繁重计算或下游API调用卸载到异步队列。
对于REST API集成,主要风险是如果计划的拉取任务静默失败,下游系统中的数据会过时。对您的ETL脚本实施警报,以便在运行失败或意外无输出时通知运营团队。从API v1.6.2迁移到v1.7时,审核所有引用unsubscribed字段和Unsubscribes端点的代码,因为v1.7中属性名已从unsubcribers更正为unsubscribers。
ROI与业务影响
集成Purple Portal API的商业案例已在多个垂直领域得到充分验证。在酒店业,使用Webhook触发的CRM集成的酒店报告称,与通用广播活动相比,个性化通信的邮件打开率显著提高,因为消息在最大相关性的时刻传递——即客人在店内时。在零售业,将访客WiFi数据连接到忠诚度计划使运营商能够识别并奖励高频访客,从而提高平均消费和重复访问率。对于大型公共场所和会议中心,API驱动的分析提供了证明赞助价值评估和优化特许经营位置所需的精细客流数据。
Purple WiFi API没有速率限制,意味着集成成本随您的基础设施扩展,而非随处理的数据量增长。对于每天处理数十万次认证的全国性零售连锁店,与按API调用收费或强加吞吐量上限的平台相比,这是一个实质性优势。因此,架构良好的Purple API集成的总拥有成本主要是一次性开发成本和监听器的持续基础设施成本,这两者通常仅通过提高营销转化率就能在第一季度内收回。

案例研究
案例研究1:酒店业——惠特布莱德集团
惠特布莱德集团是英国最大的酒店和餐饮公司,在其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)的聚合、匿名访客计数,活动团队可以为赞助商提供实时仪表板,显示赞助区域的停留时间和访客数量。在活动期间,数据通过REST API每15分钟拉取一次,并显示在定制的赞助商门户上。这一能力直接促使第一年赞助续约率提高了22%,因为赞助商现在可以用经过验证的第一方数据量化其激活的覆盖范围。
关键定义
Webhook
一种自动化机制,当特定事件发生时,服务器通过HTTP POST请求向另一应用程序发送实时数据通知(推送)。
在Purple环境中,Webhook在访客在WiFi网络上认证的那一刻向您的系统发送包含访客数据的JSON负载。这对于实时营销和CRM更新至关重要。
REST API
一种构建Web服务的标准化架构风格,允许一个系统使用标准HTTP方法(如GET和POST)从另一个系统请求(或拉取)数据。
IT团队使用Purple REST API编写脚本,拉取批量访客和场馆数据,以便在Power BI或Tableau等商业智能工具中进行分析。
API Key Authentication
一种安全模型,通过在每次请求时提供唯一的秘密令牌(密钥)来授予对API的访问权限,通常放在HTTP Authorization头中。
这比OAuth更简单,非常适合服务器到服务器的集成。您的脚本必须在请求头中包含有效的API Key才能访问Purple的数据。
Idempotency
一种操作属性,意味着可以多次应用该操作,而结果不会在初始应用之外发生变化。
您的Webhook监听器应是幂等的。如果它两次收到相同的认证事件(可能由于重试或设备重新连接),则不应,例如,发送两封欢迎邮件。
JSON (JavaScript Object Notation)
一种轻量级、基于文本的数据交换格式,易于人类阅读和机器解析生成。
Purple API和Webhooks以JSON格式传递所有数据。您的应用程序需要解析此JSON以提取电子邮件、姓名和访问次数等字段。
LogicFlow
Purple的可视化拖放工具,用于创建自动化的营销和互动工作流程,可根据访客行为和人口统计数据触发操作。
您使用LogicFlow来定义访客旅程。在这里您附加Webhook,告诉系统在用户到达其访问旅程的“在线”状态时触发它。
Captive Portal
用户在获得公共WiFi网络访问权之前必须看到并与之交互的网页,通常需要认证或数据捕获。
Purple平台驱动Captive Portal,用户在此页面上输入的数据(例如姓名、电子邮件、自定义字段)就是通过Portal API可用的数据。
GDPR (General Data Protection Regulation)
欧盟的一项全面数据隐私法,管辖欧盟居民个人数据的收集、处理和存储。
Purple API提供了构建符合GDPR的集成的工具,例如尊重用户的退订状态并启用数据导出来响应主体访问请求。v1.7 API更新特别提高了unsubscribed字段的清晰度以支持合规。
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 key向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无法传递负载时会做什么。
查看标准答案
最可能的原因是监听器处理传入的JSON负载并返回200 OK响应所需的时间超过10秒。两个直接后果是:(1) Purple将停止尝试发送当前请求,并在3小时后将其重新排队以进行重试,这意味着数据传递延迟;(2) 如果这种情况持续较长时间,Purple将自动完全禁用该Webhook,需要您在门户中手动重新验证才能重新启用。