callummacintyre-ctrl/lidl-plus-api-reference

GitHub: callummacintyre-ctrl/lidl-plus-api-reference

提供Lidl Plus API的非官方参考笔记。

Stars: 0 | Forks: 0

# Lidl Plus API — 非官方参考笔记 关于**非官方 Lidl Plus 收据 API**的实用、代码派生笔记:基于令牌的认证如何工作(包括容易被忽视的刷新令牌轮换),哪些端点返回您的收据,请求所需的头信息,以及收据返回的两种不同形状。 ## ⚠️ 声明 这是**非官方的**,**与 Lidl 无关联、未经其认可或支持**。 它记录了一个由社区逆向工程得到的私有消费者 API(见下文致谢)。它可能会随时更改或停止工作。它仅描述使用**您自己的凭据**访问**您自己的账户数据**。 请自行承担风险,并按照 Lidl 的服务条款使用它。 ## 致谢与范围 这些笔记完全基于先前的社区工作——它们是**派生文档,不是原创研究,也不是下面工具的替代品**: - **[Andre0512/lidl-plus](https://github.com/Andre0512/lidl-plus)** — 原始 Python 项目(`pip install lidl-plus`,MIT 许可证,由 André Basche 编写)。这里记录的端点、OAuth 客户端凭证、头信息设置和登录流程都是由该项目解决的。如果您需要一个维护良好、可工作的客户端,请从这里开始。 - **[zsobix/lidlplus-api](https://github.com/zsobix/lidlplus-api)** — 上面的分支。 - 社区令牌铸造助手,如[titov-vv/lidl-plus-login](https://github.com/titov-vv/lidl-plus-login)和[this gist by basst85](https://gist.github.com/basst85/ef5dae992f75ca4773a75f0249583bc1). 此存储库添加的内容:API 收据子集的**简单、语言无关的说明**,源自一个工作的 TypeScript 重新实现,以及一个**症状 → 原因 → 解决方案表格**,用于在当前 Python 上使 `lidl-plus` 登录(其自动登录目前有问题)。 ## 本笔记涵盖的内容 | 文档 | 包含内容 | |---|---| | [认证与令牌轮换](docs/authentication.md) | OAuth 客户端凭证、刷新令牌请求和**轮换陷阱**(每次调用都会返回一个新的刷新令牌,并使旧的令牌无效)。 | | [端点与头信息](docs/endpoints.md) | 收据列表(v2)和收据详情(v3)端点、分页、Android 应用程序头信息集和 401 重试行为。 | | [收据格式](docs/receipt-formats.md) | 两种收据形状——较新的 HTML (`data-art-*` spans) 和较旧的 `itemsLine` JSON——头字段和 `data-art-id` 的含义。 | | [获取刷新令牌](docs/getting-a-token.md) | 一次性的浏览器登录,用于生成第一个刷新令牌,包括运行 `lidl-plus` 登录所需的依赖项。 | | [examples/](examples/) | 合成、编辑后的请求/响应示例和通用的手动登录辅助脚本。 | ## 快速心理模型 1. **在真实浏览器中登录一次**,以生成一个长期有效的**刷新令牌**(困难的一次性步骤——见[获取令牌](docs/getting-a-token.md))。 2. 从那时起,**无需浏览器**:在 `accounts.lidl.com/connect/token` 交换刷新令牌以获取一个短期的**访问令牌**。 - ⚠️ **刷新令牌轮换**——每次交换都会返回一个新的刷新令牌并使旧的令牌无效。您必须每次都保留新的令牌。 3. 使用该访问令牌和一组模仿 Android 应用的头信息调用 `tickets.lidlplus.com` 上的收据端点: - **列出**您的收据(分页):`GET /api/v2/{COUNTRY}/tickets` - **获取一个**完整的收据:`GET /api/v3/{COUNTRY}/tickets/{id}` 4. 解析收据——它以[两种格式之一](docs/receipt-formats.md)返回。 ## 关于隐私的说明 此存储库中的所有内容都是**合成或编辑后的**。没有真实的令牌、Lidl 卡或账户号码,也没有任何真实的收据数据——只有 API 形状和虚构的示例。唯一显示的“凭证”是**应用程序的固定、公开知的 OAuth 客户端 ID/密钥**(`LidlPlusNativeClient:secret`),它已嵌入到公共应用程序中,并不属于任何账户。 ## 贡献 欢迎更正和补充——特别是针对**非 GB 账户**(这些笔记是从 GB 账户编写的)以及 API 发生变化的任何内容。请参阅[CONTRIBUTING.md](CONTRIBUTING.md)。两个基本规则:**永远不要包含真实数据**(令牌、卡/账户号码、真实收据),以及**对实际登录/获取工具的修复属于上游**在[`Andre0512/lidl-plus`](https://github.com/Andre0512/lidl-plus)——此存储库仅记录 API 形状。 ## 许可证 [MIT](LICENSE) —— 与此派生自的上游 `lidl-plus` 项目相同。
标签:逆向工具