HerrErde/SubwaySurfersCity-Api

GitHub: HerrErde/SubwaySurfersCity-Api

该项目提供了与 Subway Surfers City 手游内部 API 交互的 Python 工具集,支持通过 gRPC 和 JSON 方式调用账号认证、玩家管理、排行榜等功能接口。

Stars: 0 | Forks: 0

# SubwayCity API 您可以与 [Subway City](https://play.google.com/store/apps/details?id=com.sybogames.subway.surfers.game) 游戏应用所使用的内部 API 进行交互。 您还可以查看 [Subway Surfers API](https://github.com/HerrErde/SubwaySurfers-API) [RPC 文档](./grpc_docs.md) \ [Json 文档](./json_docs.md) ## 环境要求 - 已安装 `grpcio` 和 `protobuf` Python 包 - 已安装 Protocol Buffers Compiler (`protoc`) 并且可以通过命令行访问 ## 设置与使用 ``` pip install -r requirements.txt cd send protoc -I=protos --python_out=. protos\*.proto python -m grpc_tools.protoc -I=protos --python_out=. --grpc_python_out=. protos\*.proto ``` ``` python player.py python abtesting.py python leaderboard.py python sendjson.py ``` ## 使用方法 ### 1. 注册新账号(可选) - 运行脚本: python send/auth.py - 这将生成两个 token: - `identityToken` - `refreshToken` - 或者您可以手动请求这些 endpoint - 最简单的方法是将其与 .env 文件以及变量 `IDENTITYTOKEN` 结合使用 ### 2. 创建玩家(仅在您注册了新账号的情况下) - 注册之后,您必须先创建一个玩家资料,然后才能使用大多数 API endpoint。(在使用 `auth.py` 时不需要) ### 3. 获取您的 `identityToken` - **如果您已经拥有 Subway Surfers City 账号:** 1. 打开您游戏目录下的 `auth/prod/identity` 文件。 2. 该文件为 JSON 格式。复制 `"identityToken"` 的值。 - **如果您注册了一个新账号:** 使用 `python send/auth.py` 返回的 `identityToken`。 ### Token 刷新 - `identityToken` 的有效期为 **7 天**。 - 在过期时使用您的 `refreshToken` 来请求新的 `identityToken`。 - 务必在所有使用到该 token 的地方替换旧 token。 ## API 文档 - [RPC 文档](./grpc_docs.md) – gRPC endpoint、请求/响应格式、示例 - [JSON 文档](./json_docs.md) – JSON endpoint、请求/响应格式、示例 ### 开发说明 如果您想自行解码请求,请对您的手机进行 root、使用模拟器,或者破解该应用。 然后使用 **PCAPdroid** 捕获流量并将其导出为 PCAP 文件。在 **Wireshark** 中打开该文件,找到 gRPC 请求(通过搜索 "gprc" 进行过滤),并检查 **Protocol Buffer** 部分。接下来,复制相关 `Field()` 内部的 `value`。然后您可以使用类似 [protobuf-decoder](https://good.tools/protobuf-decoder) 的工具来解码 Protobuf。对响应也可以采取同样的操作。
标签:gRPC, Protocol Buffers, Python, Python工具, 接口交互, 无后门, 游戏API, 移动应用接口, 逆向工具