核心功能
Supermarket Skill 是基于Kroger官方API开发的超市购物助手,覆盖Kroger、Ralphs、Fred Meyer、Harris Teeter等十余个连锁品牌。核心能力包括:商品搜索(支持本地定价查询)、门店定位(按邮编半径搜索)、购物车管理(添加商品)、个人账户查看。
技术架构与安全性
该技能采用托管OAuth代理处理Kroger API认证,代理部署于Firebase Cloud Functions。安全设计亮点:用户token在返回后立即从Firestore删除;登录会话5分钟过期;Firestore规则拒绝所有客户端直接访问;代理不接触用户密码(直接跳转Kroger OAuth页面)。完整源码开源于krocli仓库,可审计所有函数。
双token机制:Client Token用于公开数据(商品、门店),30分钟过期,自动获取;User Token用于个人数据(购物车、账户),需一次性浏览器登录,支持refresh_token持久化。
显著优点
1. 品牌覆盖广:单一API接入Kroger旗下全部门店网络
2. 透明可信:OAuth代理完全开源,隐私承诺可验证
3. 灵活部署:支持自托管Firebase代理,或直接用Go CLI跳过代理
4. 用户体验优化:refresh_token持久化,避免重复登录
潜在局限与风险
- 第三方代理依赖:使用托管版本需信任
us-central1-krocli.cloudfunctions.net(尽管源码公开) - OAuth流程摩擦:用户需离开对话完成浏览器登录
- API速率限制:Kroger官方限制可能导致搜索延迟
- 地域限制:仅支持美国Kroger系门店
- token刷新负担:30分钟有效期需自动刷新逻辑
适合人群
美国 Kroger 系超市的常规购物者、需要比价或规划购物清单的用户、重视数据隐私且愿意审核开源代码的技术敏感型用户。
常规风险提示
建议优先自托管部署以消除第三方信任;妥善保管refresh_token;注意OAuth钓鱼风险(始终验证登录URL域名);购物车操作不可逆,建议先确认商品信息。