一些原神的游戏查询API。

This commit is contained in:
Kamisato-Ayaka-233 2023-02-12 14:20:40 +08:00
parent 598854c803
commit 39dadc0ca2
9 changed files with 1919 additions and 64 deletions

View File

@ -1,4 +1,8 @@
<img src="https://raw.githubusercontent.com/Kamisato-Ayaka-233/mihoyo-api-collect/main/files/images/top.jpg" height="130" style="text-align: center;margin: 0 auto;">
<h1 align="center">米哈游API</h1>
<p align="center">米游社、原神、崩坏</p>
@ -46,11 +50,11 @@
- [ ] [基本信息](hoyolab/forum/info.md)
- [ ] [文章](hoyolab/article)
- [ ] [文章](hoyolab/article/article.md)
- [ ] [公告](hoyolab/article/announcement.md)
- [ ] [文章操作](hoyolab/article/article_operation.md)
- [ ] [公告](hoyolab/article/announcement.md)
- [ ] [用户](hoyolab/user)
- [ ] [用户信息](hoyolab/user/info.md)
- [ ] [用户游戏信息](hoyolab/user/game_info.md)
- [ ] [用户游戏信息](hoyolab/user/game_account_info.md)
---

BIN
files/images/top.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

View File

@ -1,38 +0,0 @@
# 原神玩家基本信息
- [获取玩家基本信息](#获取玩家基本信息)
## 获取玩家基本信息
**国服:**
_请求方式GET_
`https://api-takumi-record.mihoyo.com/game_record/app/genshin/api/index`
参数
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| role_id | num | 玩家UID | |
| server | str | cn_gf01 官服<br/>cn_qd01 渠道服 | |
**国际服:**
_请求方式GET_
`https://bbs-api-os.hoyolab.com/game_record/genshin/api/index`
参数
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| role_id | num | 玩家UID | |
| server | str | os_asia 亚服<br/>os_euro 欧服<br/>os_usa 美服<br/>os_cht 港澳台服 | |
返回
根对象
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |

View File

@ -26,7 +26,7 @@ _请求方式GET_
| 字段 | 类型 | 内容 | 备注 |
| --- | ---- | ---- | ---- |
| retcode | num | 0 成功<br/>1 未选择游戏 | |
| retcode | num | 返回码<br/>1 未选择游戏 | |
| message | str | 返回消息 | |
| data | obj | 首页信息 | |
@ -482,7 +482,7 @@ _请求方式GET_
| 字段 | 类型 | 内容 | 备注 |
| --- | ---- | ---- | ---- |
| retcode | num | 0 成功<br/>1001 未指定类型<br/>1002 未指定唯一游戏 | |
| retcode | num | 返回码<br/>1001 未指定类型<br/>1002 未指定唯一游戏 | |
| message | str | 返回消息 | |
| data | obj | 资讯信息 | |
@ -652,7 +652,7 @@ _请求方式GET_
| 字段 | 类型 | 内容 | 备注 |
| --- | ---- | ---- | ---- |
| gids | num | 游戏ID | |
|
|
**JSON返回**
@ -660,7 +660,7 @@ _请求方式GET_
| 字段 | 类型 | 内容 | 备注 |
| --- | ---- | ---- | ---- |
| retcode | num | 0 成功<br/>1 未选择游戏 | |
| retcode | num | 返回码<br/>1 未选择游戏 | |
| message | str | 返回消息 | |
| data | obj | 首页信息 | |

File diff suppressed because it is too large Load Diff

8
hoyolab/user/info.md Normal file
View File

@ -0,0 +1,8 @@
# 用户基本信息
- [用户信息](#用户信息)
- [获取用户完整信息](#获取用户完整信息)
---
# 获取用户完整信息

View File

@ -148,7 +148,7 @@ DS值通过一系列算法得出。
整体思路:
1. 获取当前的Unix时间戳整数
1. 在100001到200000中选取随机整数
1. 在100000到200000中选取随机整数但是如果随机到100000则加上542367得到642367
1. 若将发送Post请求则将发送的数据转为JSON字符串存储至变量下文称`body`。若将发送Get请求则将URL参数进行英文字母顺序排序后存储至变量下文称`query`例如URL参数为`server=cn_gf01&role_id=114514191`则结果为`role_id=222681079&server=cn_gf01`。若不需要传递数据或URL参数则为空字符串。
1. 格式化字符串:`salt={salt值}&t={第1步的结果}&r={第2步的结果}&b={第3步的body}&q={第3步的query}`。
1. 将第4步的结果进行UTF-8编码再进行MD5编码。
@ -170,7 +170,9 @@ body = '{"role": "123456789"}'
query = "&".join(sorted("server=cn_gf01&role_id=123456789".split("&")))
t = int(time.time())
r = random.randint(100001, 200000)
r = random.randint(100000, 200000)
if r == 100000:
r = 642367
main = f"salt={salt}&t={t}&r={r}&b={body}&q={query}"
ds = md5(main.encode(encoding='UTF-8')).hexdigest()
@ -217,6 +219,8 @@ final = f"{t},{r},{ds}" # 最终结果。
一些API例如文章点赞、签到等需要登录账号为Cookie的形式。
需要验证Cookie的API会进行标注。
若API无需登录账号就不需要设置Cookie。
### 米游社
@ -234,7 +238,7 @@ final = f"{t},{r},{ds}" # 最终结果。
以下字段可选:
* `cookie_token_v2`
* `cookie_token_v2` - **米游社签到福利(游戏内道具)需要验证该字段**
* `account_mid_v2` - 与`ltmid_v2`相同
* `account_id_v2` - 米游社UID
* `cookie_token_v2`

14
other/error_code.md Normal file
View File

@ -0,0 +1,14 @@
# 公共错误码
- [米游社](#米游社)
## 米游社
错误码为API返回JSON中的`retcode`字段。
| 错误码 | 消息 | 原因 |
| ------------------------------ | ---- | --- |
| -10001 | invalid request | 该API需要验证请求头请求头的`DS`字段缺失<br/>请查看[鉴权](other/authentication.md#请求头) |
| -1 | param XXX error: value must be greater than X<br/>param XXX error: value must be in list [X ...] | 传递的参数XXX缺失<br/>传递的参数XXX的值只能在X、...中 |
| 1008 | 用户信息不匹配 | 传递的参数不正确<br/>(例如获取用户游戏账号信息的`role_id`为无效UID |
| 10001 | Please login | 该API需要验证Cookie<br/>请查看[鉴权](other/authentication.md#cookie) |

View File

@ -3,13 +3,18 @@
- [游戏ID](#游戏id)
- [论坛ID](#论坛id)
- [崩坏3](#崩坏3)
- [原神](#原神)
- [崩坏学园2](#崩坏学园2)
- [未定事件簿](#未定事件簿)
- [大别野](#大别野)
- [崩坏:星穹铁道](#崩坏星穹铁道)
- [绝区零](#绝区零)
- [崩坏3](#forum-honkai-impact-3)
- [原神](#forum-genshin-impact)
- [崩坏学园2](#forum-honkai-gakuen-2)
- [未定事件簿](#forum-tears-of-themis)
- [大别野](#forum-dby)
- [崩坏:星穹铁道](#forum-honkai-star-rail)
- [绝区零](#forum-zenless-zone-zero)
- [子分区](#forum-sub-area)
- [视频分区](#forum-video-area)
- [原神](#原神)
- [服务器名称](#genshin-server-region)
- [角色ID](#genshin-characters)
---
@ -30,7 +35,7 @@
父分区
### 崩坏3
<h3 id="forum-honkai-impact-3">崩坏3</h3>
| ID | 分区 | 备注 |
| -- | ---- | ---- |
@ -40,7 +45,7 @@
| 14 | 攻略 | |
| 41 | 同人文 | |
### 原神
<h3 id="forum-genshin-impact">原神</h3>
| ID | 分区 | 备注 |
| -- | ---- | ---- |
@ -51,7 +56,7 @@
| 49 | COS | |
| 50 | 硬核 | |
### 崩坏学园2
<h3 id="forum-honkai-gakuen-2">崩坏学园2</h3>
| ID | 分区 | 备注 |
| -- | ---- | ---- |
@ -61,7 +66,7 @@
| 40 | 同人图 | |
| 51 | 攻略 | |
### 未定事件簿
<h3 id="forum-tears-of-themis">未定事件簿</h3>
| ID | 分区 | 备注 |
| -- | ---- | ---- |
@ -71,7 +76,7 @@
| 42 | 同人文 | |
| 60 | 攻略 | |
### 大别野
<h3 id="forum-dby">大别野</h3>
| ID | 分区 | 备注 |
| -- | ---- | ---- |
@ -84,7 +89,7 @@
| 54 | 校园 | |
| 55 | 科技 | |
### 崩坏:星穹铁道
<h3 id="forum-honkai-star-rail">崩坏:星穹铁道</h3>
| ID | 分区 | 备注 |
| -- | ---- | ---- |
@ -92,7 +97,7 @@
| 53 | 官方 | |
| 56 | 同人图 | |
### 绝区零
<h3 id="forum-zenless-zone-zero">绝区零</h3>
| ID | 分区 | 备注 |
| -- | ---- | ---- |
@ -101,7 +106,7 @@
| 59 | 同人图 | |
子分区
<h3 id="forum-sub-area">子分区</h3>
| ID | 分区 | 备注 |
| -- | ---- | --- |
@ -111,7 +116,7 @@
| 4 | 插画 | |
| 16 | 综合 | |
视频分区
<h3 id="forum-video-area">视频分区</h3>
| ID | 分区 | 备注 |
| ------ | ---- | --- |
@ -128,6 +133,86 @@
| 15 | 生活记录 | |
## 原神
<h3 id="genshin-server-region">服务器名称</h3>
| 名称 | 服务器 | 类别 |
| --- | ------ | ---- |
| cn_gf01 | 官服 | 国服 |
| cn_qd01 | 渠道服 | 国服 |
| os_asia | 亚服 | 国际服 |
| os_euro | 欧服 | 国际服 |
| os_usa | 美服 | 国际服 |
| os_cht | 港澳台服 | 国际服 |
<h3 id="genshin-characters">角色ID</h3>
| ID | 角色 | 元素 | 国家 |
| -- | ---- | --- | ---- |
| 10000002 | 神里绫华 | 冰 | 稻妻 |
| 10000003 | 琴 | 风 | 蒙德 |
| 10000005 | 旅行者(空) | | |
| 10000007 | 旅行者(荧) | | |
| 10000006 | 丽莎 | 雷 | 蒙德 |
| 10000014 | 芭芭拉 | 水 | 蒙德 |
| 10000015 | 凯亚 | 冰 | 蒙德 |
| 10000016 | 迪卢克 | 火 | 蒙德 |
| 10000020 | 雷泽 | 雷 | 蒙德 |
| 10000021 | 安柏 | 火 | 蒙德 |
| 10000022 | 温迪 | 风 | 蒙德 |
| 10000023 | 香菱 | 火 | 璃月 |
| 10000024 | 北斗 | 雷 | 璃月 |
| 10000025 | 行秋 | 水 | 璃月 |
| 10000026 | 魈 | 风 | 璃月 |
| 10000027 | 凝光 | 岩 | 璃月 |
| 10000029 | 可莉 | 火 | 蒙德 |
| 10000030 | 钟离 | 岩 | 璃月 |
| 10000031 | 菲谢尔 | 雷 | 蒙德 |
| 10000032 | 班尼特 | 火 | 蒙德 |
| 10000033 | 达达利亚 | 水 | 璃月 |
| 10000034 | 诺艾尔 | 岩 | 蒙德 |
| 10000035 | 七七 | 冰 | 璃月 |
| 10000036 | 重云 | 冰 | 璃月 |
| 10000037 | 甘雨 | 冰 | 璃月 |
| 10000038 | 阿贝多 | 岩 | 蒙德 |
| 10000039 | 迪奥娜 | 冰 | 蒙德 |
| 10000041 | 莫娜 | 水 | 蒙德 |
| 10000042 | 刻晴 | 雷 | 璃月 |
| 10000043 | 砂糖 | 风 | 蒙德 |
| 10000044 | 辛焱 | 火 | 璃月 |
| 10000045 | 罗莎莉亚 | 冰 | 蒙德 |
| 10000046 | 胡桃 | 火 | 璃月 |
| 10000047 | 枫原万叶 | 风 | 稻妻 |
| 10000048 | 烟绯 | 火 | 璃月 |
| 10000049 | 宵宫 | 火 | 稻妻 |
| 10000050 | 托马 | 火 | 稻妻 |
| 10000051 | 优菈 | 冰 | 蒙德 |
| 10000052 | 雷电将军 | 雷 | 稻妻 |
| 10000053 | 早柚 | 风 | 稻妻 |
| 10000054 | 珊瑚宫心海 | 水 | 稻妻 |
| 10000055 | 五郎 | 岩 | 稻妻 |
| 10000056 | 九条裟罗 | 雷 | 稻妻 |
| 10000057 | 荒泷一斗 | 岩 | 稻妻 |
| 10000058 | 八重神子 | 雷 | 稻妻 |
| 10000059 | 鹿野院平藏 | 风 | 稻妻 |
| 10000060 | 夜兰 | 水 | 璃月 |
| 10000062 | 埃洛伊 | 冰 | |
| 10000063 | 申鹤 | 冰 | 璃月 |
| 10000064 | 云堇 | 岩 | 璃月 |
| 10000065 | 久岐忍 | 雷 | 稻妻 |
| 10000066 | 神里绫人 | 水 | 稻妻 |
| 10000067 | 柯莱 | 草 | 须弥 |
| 10000068 | 多莉 | 雷 | 须弥 |
| 10000069 | 提纳里 | 草 | 须弥 |
| 10000070 | 妮露 | 水 | 须弥 |
| 10000071 | 赛诺 | 雷 | 须弥 |
| 10000072 | 坎蒂丝 | 水 | 须弥 |
| 10000073 | 纳西妲 | 草 | 须弥 |
| 10000074 | 莱依拉 | 冰 | 须弥 |
| 10000075 | 流浪者 | 风 | |
| 10000076 | 珐露珊 | 风 | 须弥 |
| 10000077 | 瑶瑶 | 草 | 璃月 |
| 10000078 | 艾尔海森 | 草 | 须弥 |