【A】“米游社用户游戏账号信息”文档增加“通过Action Ticket获取绑定游戏账号的基本信息”和原神部分“获取游戏账号基本信息”

【A】“米游社用户Token”增加“通过SToken获取Action Ticket”
【A】“绕过验证与鉴权”的Cookie部分增加“Action Ticket”与“Auth Key”的说明
This commit is contained in:
Kamisato-Ayaka-233 2023-08-26 17:44:24 +08:00
parent fd63a292d9
commit 19ba3d51e9
5 changed files with 292 additions and 16 deletions

View File

@ -102,6 +102,7 @@ _请求方式GET_
_请求方式GET_ _请求方式GET_
网页:`https://bbs-api.miyoushe.com/post/wapi/userPost` 网页:`https://bbs-api.miyoushe.com/post/wapi/userPost`
应用:`https://bbs-api.miyoushe.com/painter/api/user_instant/list` 应用:`https://bbs-api.miyoushe.com/painter/api/user_instant/list`
``` ```
@ -119,6 +120,7 @@ _请求方式GET_
- `str`:字符串。 - `str`:字符串。
- `arr`:数组。 - `arr`:数组。
- `obj`:对象(字典、集合)。 - `obj`:对象(字典、集合)。
- `null`:空(一般不使用)。
需要使用下面的格式: 需要使用下面的格式:
@ -195,8 +197,6 @@ _请求方式GET_
数据类型应使用JSON数据类型英文缩写。 数据类型应使用JSON数据类型英文缩写。
具体可查看例子: 具体可查看例子:
```markdown ```markdown

View File

@ -3,8 +3,10 @@
- [获取游戏记录卡片信息](#获取游戏记录卡片信息) - [获取游戏记录卡片信息](#获取游戏记录卡片信息)
- [通过LToken获取绑定游戏账号的基本信息](#通过ltoken获取绑定游戏账号的基本信息) - [通过LToken获取绑定游戏账号的基本信息](#通过ltoken获取绑定游戏账号的基本信息)
- [通过SToken获取绑定游戏账号的基本信息](#通过stoken获取绑定游戏账号的基本信息) - [通过SToken获取绑定游戏账号的基本信息](#通过stoken获取绑定游戏账号的基本信息)
- [通过Action Ticket获取绑定游戏账号的基本信息](#通过action-ticket获取绑定游戏账号的基本信息)
- [原神](#原神) - [原神](#原神)
- [获取首页信息](#genshin-home) - [获取首页信息](#genshin-home)
- [获取游戏账号基本信息](#genshin-role-basics)
- [获取角色信息](#genshin-characters) - [获取角色信息](#genshin-characters)
- [获取深境螺旋信息](#genshin-spiral-abyss) - [获取深境螺旋信息](#genshin-spiral-abyss)
- [获取祈愿记录](#genshin-wish) - [获取祈愿记录](#genshin-wish)
@ -314,9 +316,79 @@ _请求方式GET_
``` ```
</details> </details>
## 通过Action Ticket获取绑定游戏账号的基本信息
**国服:**
_请求方式GET_
`https://api-takumi.miyoushe.com/binding/api/getUserGameRoles`
**参数:**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| action_ticket | str | 用于获取绑定游戏账号信息的有效Action Ticket | |
| game_biz | str | 游戏标识符 | 若该值为空,将返回所有绑定游戏账号的信息 |
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码 | |
| message | str | 返回消息 | |
| data | obj | Cookie对应米游社账号绑定的游戏账号信息 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| list | arr | 游戏账号基本信息 | |
`data`对象→`list`数组→对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| game_biz | str | 该游戏账号所属游戏的标识符 | |
| region | str | 该游戏账号所在服务器的名称 | |
| game_uid | str | 该游戏账号的UID | |
| nickname | str | 该游戏账号的昵称 | |
| level | num | 该游戏账号的等级 | |
| is_chosen | bool | 是否已收藏该游戏账号 | |
| region_name | str | 该游戏账号所在服务器的称呼 | |
| is_official | bool | 该游戏账号所在服务器是否为官方服务器 | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"list": [
{
"game_biz": "hk4e_cn",
"region": "cn_qd01",
"game_uid": "524923864",
"nickname": "༽墨ᐒ染ᐓ月༼",
"level": 22,
"is_chosen": false,
"region_name": "世界树",
"is_official": false
},
...
]
}
}
```
</details>
## 原神 ## 原神
<h3 id="genshin-home">获取玩家首页信息</h3> <h3 id="genshin-home">获取首页信息</h3>
**国服:** **国服:**
@ -561,7 +633,72 @@ _请求方式GET_
| role_id | num | 原神UID | | | role_id | num | 原神UID | |
| server | str | 服务器名称 | | | server | str | 服务器名称 | |
<h3 id="genshin-characters">获取玩家角色信息</h3> <h3 id="genshin-role-basics">获取游戏账号基本信息</h3>
**国服:**
_请求方式GET_
> _需要验证请求头_
>
> `x-rpc-client_type``5`
>
> 4X`salt`
>
> `DS2`
> _需要验证Cookie_
>
> LToken
`https://api-takumi-record.mihoyo.com/game_record/app/genshin/api/roleBasicInfo`
**参数:**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| server | str | 服务器名称 | |
| role_id | num | 原神UID | |
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码 | |
| message | str | 返回消息 | |
| data | obj | 该游戏账号的基本信息 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| AvatarUrl | str | 空字符串 | |
| nickname | str | 该游戏账号的昵称 | |
| region | str | 该游戏账号所属服务器的名称 | |
| level | num | 该游戏账号的冒险等级 | |
| card_play_level | num | 待调查 | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"AvatarUrl": "",
"nickname": "※青衫入雨※",
"region": "cn_gf01",
"level": 59,
"card_play_level": 0
}
}
```
</details>
<h3 id="genshin-characters">获取角色信息</h3>
**国服:** **国服:**
@ -799,7 +936,7 @@ _请求方式POST_
**JSON返回** **JSON返回**
<h3 id="genshin-spiral-abyss">获取玩家深境螺旋信息</h3> <h3 id="genshin-spiral-abyss">获取深境螺旋信息</h3>
**国服:** **国服:**

View File

@ -6,6 +6,8 @@
- [通过Game Token获取SToken](#通过game-token获取stoken) - [通过Game Token获取SToken](#通过game-token获取stoken)
- [通过Game Token获取Cookie Token](#通过game-token获取cookie-token) - [通过Game Token获取Cookie Token](#通过game-token获取cookie-token)
- [通过Cookie Token获取Hk4e Token](#通过cookie-token获取hk4e-token) - [通过Cookie Token获取Hk4e Token](#通过cookie-token获取hk4e-token)
- [Action Ticket](#action-ticket)
- [通过SToken获取Action Ticket](#通过stoken获取action-ticket)
- [Auth Key](#auth-key) - [Auth Key](#auth-key)
- [通过SToken获取账号Auth Key A](#通过stoken获取账号auth-key-a) - [通过SToken获取账号Auth Key A](#通过stoken获取账号auth-key-a)
- [通过SToken获取账号Auth Key B](#通过stoken获取账号auth-key-b) - [通过SToken获取账号Auth Key B](#通过stoken获取账号auth-key-b)
@ -177,18 +179,18 @@ _请求方式POST_
| 字段 | 类型 | 内容 | 备注 | | 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- | | ---- | ---- | ---- | ---- |
| aid | str | 米游社UID | | | aid | str | 米游社账号UID | |
| mid | str | 米游社MiHoYo ID | | | mid | str | 米游社MiHoYo ID | |
| account_name | str | 空字符串 | | | account_name | str | 空字符串 | |
| email | str | 被隐藏的账号的绑定邮箱 | | | email | str | 被隐藏的账号的绑定邮箱 | |
| is_email_verify | num | 绑定邮箱是否通过验证 | | | is_email_verify | num | 绑定邮箱是否通过验证 | |
| area_code | str | 账号绑定手机的区号 | | | area_code | str | 账号绑定手机的国家号码 | |
| mobile | str | 被隐藏的账号的绑定手机 | | | mobile | str | 被隐藏的账号的绑定手机 | |
| safe_area_code | str | 账号安全手机的区号 | 历史遗留字段,现在安全手机的功能已经被移除了 | | safe_area_code | str | 账号安全手机的国家号码 | 历史遗留字段,现在安全手机的功能已经被移除了 |
| safe_mobile | str | 被隐藏的账号安全手机 | 历史遗留字段,现在安全手机的功能已经被移除了 | | safe_mobile | str | 被隐藏的账号安全手机 | 历史遗留字段,现在安全手机的功能已经被移除了 |
| realname | str | 被隐藏的账号实名认证姓名 | | | realname | str | 被隐藏的账号实名认证姓名 | |
| identity_code | str | 被隐藏的账号实名认证身份证号 | | | identity_code | str | 被隐藏的账号实名认证身份证号 | |
| rebind_area_code | str | 账号的换绑手机号的区号 | | | rebind_area_code | str | 账号的换绑手机号的国家号码 | |
| rebind_mobile | str | 被隐藏的账号的换绑手机号 | | | rebind_mobile | str | 被隐藏的账号的换绑手机号 | |
| rebind_mobile_time | str | 0 | | | rebind_mobile_time | str | 0 | |
| links | arr | 待调查 | | | links | arr | 待调查 | |
@ -329,6 +331,121 @@ _请求方式POST_
``` ```
</details> </details>
## Action Ticket
### 通过SToken获取Action Ticket
**国服:**
_请求方式GET_
> _需要验证Cookie_
>
> SToken
`https://api-takumi.mihoyo.com/auth/api/getActionTicketBySToken`
**JSON请求**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| action_type | str | 获取Action Ticket的用途<br>game_role 获取绑定游戏账号信息 | |
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码 | |
| message | str | 返回消息 | |
| data | obj | 对应用途的Action Ticket与部分账号个人信息 | 个人信息已隐藏 |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| ticket | str | Action Ticket | |
| is_verified | bool | 待调查 | |
| account_info | obj | 部分个人信息 | 个人信息已隐藏 |
`data`对象→`account_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| is_realname | bool | 待调查 | |
| mobile | str | 绑定手机的手机号 | |
| safe_mobile | str | 安全手机的手机号 | 历史遗留字段,现在安全手机的功能已经被移除了 |
| safe_area_code | str | 安全手机的国家号码 | 历史遗留字段,现在安全手机的功能已经被移除了 |
| account_id | str | Cookie对应米游社账号的ID | |
| account_name | str | 空字符串 | |
| email | str | 被隐藏的绑定邮箱 | |
| is_email_verify | bool | 绑定邮箱是否已通过验证 | |
| area_code | str | 绑定手机的国家号码 | |
| real_name | str | 被隐藏的实名认证中的姓名 | |
| identify_code | str | 被隐藏的实名认证中的身份证号 | |
| create_time | str | 该米游社账号创建时间的Unix时间戳 | |
| create_ip | str | 待调查 | |
| change_pwd_time | sr | 待调查 | |
| nickname | str | 空字符串 | |
| user_icon_id | num | 待调查 | |
| safe_level | num | 该账号的安全等级<br>3 高 | |
| black_endtime | str | 待调查 | |
| black_note | str | 待调查 | |
| gender | num | 性别 | |
| real_stat | num | 待调查 | |
| apple_name | str | 待调查 | |
| sony_name | str | 待调查 | |
| tap_name | str | 待调查 | |
| reactivate_ticket | str | 待调查 | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"ticket": "***",
"is_verified": false,
"account_info": {
"is_realname": false,
"mobile": "***********",
"safe_mobile": "",
"account_id": "317832114",
"account_name": "",
"email": "262****725@qq.com",
"is_email_verify": true,
"area_code": "+86",
"safe_area_code": "",
"real_name": "***",
"identity_code": "******************",
"create_time": "1646740732",
"create_ip": "",
"change_pwd_time": "0",
"nickname": "",
"user_icon_id": 0,
"safe_level": 3,
"black_endtime": "0",
"black_note": "",
"gender": 0,
"real_stat": 0,
"apple_name": "",
"sony_name": "",
"tap_name": "",
"reactivate_ticket": ""
}
}
}
```
</details>
**国际服:**
`未知`
## Auth Key ## Auth Key
### 通过SToken获取账号Auth Key A ### 通过SToken获取账号Auth Key A

View File

@ -26,6 +26,8 @@
- [Account ID](#account-id) - [Account ID](#account-id)
- [Login Ticket](#login-ticket) - [Login Ticket](#login-ticket)
- [Cookie Token](#cookie-token) - [Cookie Token](#cookie-token)
- [Action Ticket](#action-ticket)
- [Auth Key](#auth-key)
- [Game Token](#game-token) - [Game Token](#game-token)
- [Hk4e Token](#hk4e-token) - [Hk4e Token](#hk4e-token)
@ -358,9 +360,13 @@ const final = `${t},${r},${ds}` // 最终结果
即`ltoken_v2`和`ltoken`。 即`ltoken_v2`和`ltoken`。
`ltoken_v2`和`ltoken`多用于查询用户的游戏账号信息。 `ltoken_v2`和`ltoken`并不总是使用相同的值,多用于查询用户的游戏账号信息。
必须与[`ltmid_v2`](#mihoyo-id)一起使用。 `ltoken_v2`必须与[`ltmid_v2`](#mihoyo-id)一起使用,`ltoken`必须与[`ltuid`](#account-id)一起使用。
`ltoken_v2`的开头通常带有“v2_”字样且长度较长`ltoken`的长度则较短。
在修改米游社账号的密码后将会发生变化。
#### SToken #### SToken
@ -370,6 +376,8 @@ const final = `${t},${r},${ds}` // 最终结果
必须与[`mid`](#mihoyo-id)一起使用。 必须与[`mid`](#mihoyo-id)一起使用。
在修改米游社账号的密码后将会发生变化。
#### MiHoYo ID #### MiHoYo ID
分为与[LToken](#ltoken)一起使用的`ltmid_v2`,和与[SToken](#stoken)一起使用的`mid` 分为与[LToken](#ltoken)一起使用的`ltmid_v2`,和与[SToken](#stoken)一起使用的`mid`
@ -378,7 +386,7 @@ const final = `${t},${r},${ds}` // 最终结果
#### Account ID #### Account ID
有`account_id_v2`、`account_id`、`login_uid`、`ltuid`和`stuid`。 有`account_id_v2`、`account_id`、`login_uid`、`ltuid`、`ltuid_v2`和`stuid`。
UID即米游社UID。这个Cookie不是必须传递的。 UID即米游社UID。这个Cookie不是必须传递的。
@ -386,21 +394,35 @@ UID即米游社UID。这个Cookie不是必须传递的。
即`login_ticket`。 即`login_ticket`。
`login_ticket`是米游社的登录凭证,可用于获取[SToken](#stoken)和[LToken](#ltoken)。隔一段时间刷新。 `login_ticket`是米游社的登录凭证,可用于获取[SToken](#stoken)和[LToken](#ltoken)。
通常在[米游社通行证](https://user.mihoyo.com/)中登录获得。 通常在[米游社通行证](https://user.mihoyo.com/)中登录获得。
有效期为30分钟。
#### Cookie Token #### Cookie Token
分为`cookie_token`和`cookie_token_v2`。 分为`cookie_token`和`cookie_token_v2`。
`cookie_token`与`cookie_token_v2`的值不相同。 `cookie_token`与`cookie_token_v2`的值不相同。
#### Action Ticket
Action Ticket通常不在Cookie中使用而是作为URL参数或请求体的一部分传递类似于凭证。
Action Ticket通常用于米游社内的部分网页操作。
#### Auth Key
Auth Key通常不在Cookie中使用而是作为URL参数或请求体的一部分传递类似于凭证。
Auth Key通常用于米游社的联系客服页面。
#### Game Token #### Game Token
即`game_token`。 即`game_token`。
`game_token`为游戏登录凭证通常用于扫码登录后获取其它Token。 `game_token`为游戏登录凭证通常用于获取其它Token。
#### Hk4e Token #### Hk4e Token

View File

@ -12,8 +12,8 @@
| ----- | ---- | ---- | | ----- | ---- | ---- |
| -10001 | invalid request | 该API需要验证请求头请求头的一些字段缺失或错误<br/>请查看[绕过检测与鉴权](other/authentication.md) | | -10001 | invalid request | 该API需要验证请求头请求头的一些字段缺失或错误<br/>请查看[绕过检测与鉴权](other/authentication.md) |
| -1 | param error<br>param {param} error: value must be greater than {max}<br>param {param} error: value must be in list [{n1} {n2} ... {nn}] | 传递的参数值错误<br>传递的参数`param`的值必须大于`max`<br>传递的参数`param`的值只能是`n1`、`n2`至`nn`其中之一 | | -1 | param error<br>param {param} error: value must be greater than {max}<br>param {param} error: value must be in list [{n1} {n2} ... {nn}] | 传递的参数值错误<br>传递的参数`param`的值必须大于`max`<br>传递的参数`param`的值只能是`n1`、`n2`至`nn`其中之一 |
| 1008 | 用户信息不匹配 | 传递的参数不正确<br/>例如获取用户游戏账号信息的`role_id`为无效UID | | 1008 | 用户信息不匹配 | 传递的参数不正确例如获取用户游戏账号信息的`role_id`为无效UID |
| 10001 | Please login | 该API需要验证Cookie<br/>请查看[绕过检测与鉴权](other/authentication.md#cookie) | | 10001 | Please login | 该API需要验证Cookie<br>请查看[绕过检测与鉴权](other/authentication.md#cookie) |
| 1034 | | 请求遇到验证码 | | 1034 | | 请求遇到验证码 |
### `api-takumi.miyoushe.com` ### `api-takumi.miyoushe.com`