diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 10f1e8c..fbb344d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -102,6 +102,7 @@ _请求方式:GET_ _请求方式:GET_ 网页:`https://bbs-api.miyoushe.com/post/wapi/userPost` + 应用:`https://bbs-api.miyoushe.com/painter/api/user_instant/list` ``` @@ -119,6 +120,7 @@ _请求方式:GET_ - `str`:字符串。 - `arr`:数组。 - `obj`:对象(字典、集合)。 +- `null`:空(一般不使用)。 需要使用下面的格式: @@ -195,8 +197,6 @@ _请求方式:GET_ 数据类型应使用JSON数据类型英文缩写。 - - 具体可查看例子: ```markdown diff --git a/hoyolab/user/game_account_info.md b/hoyolab/user/game_account_info.md index 0858494..c9d4aa7 100644 --- a/hoyolab/user/game_account_info.md +++ b/hoyolab/user/game_account_info.md @@ -3,8 +3,10 @@ - [获取游戏记录卡片信息](#获取游戏记录卡片信息) - [通过LToken获取绑定游戏账号的基本信息](#通过ltoken获取绑定游戏账号的基本信息) - [通过SToken获取绑定游戏账号的基本信息](#通过stoken获取绑定游戏账号的基本信息) +- [通过Action Ticket获取绑定游戏账号的基本信息](#通过action-ticket获取绑定游戏账号的基本信息) - [原神](#原神) - [获取首页信息](#genshin-home) + - [获取游戏账号基本信息](#genshin-role-basics) - [获取角色信息](#genshin-characters) - [获取深境螺旋信息](#genshin-spiral-abyss) - [获取祈愿记录](#genshin-wish) @@ -314,9 +316,79 @@ _请求方式:GET_ ``` +## 通过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 | 该游戏账号所在服务器是否为官方服务器 | | + +
+查看示例 + +```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 + }, + ... + ] + } +} +``` +
+ ## 原神 -

获取玩家首页信息

+

获取首页信息

**国服:** @@ -561,7 +633,72 @@ _请求方式:GET_ | role_id | num | 原神UID | | | server | str | 服务器名称 | | -

获取玩家角色信息

+

获取游戏账号基本信息

+ +**国服:** + +_请求方式: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 | 待调查 | | + +
+查看示例 + +```json +{ + "retcode": 0, + "message": "OK", + "data": { + "AvatarUrl": "", + "nickname": "※青衫入雨※", + "region": "cn_gf01", + "level": 59, + "card_play_level": 0 + } +} +``` +
+ +

获取角色信息

**国服:** @@ -799,7 +936,7 @@ _请求方式:POST_ **JSON返回** -

获取玩家深境螺旋信息

+

获取深境螺旋信息

**国服:** diff --git a/hoyolab/user/token.md b/hoyolab/user/token.md index 4d62003..a1f5096 100644 --- a/hoyolab/user/token.md +++ b/hoyolab/user/token.md @@ -6,6 +6,8 @@ - [通过Game Token获取SToken](#通过game-token获取stoken) - [通过Game Token获取Cookie Token](#通过game-token获取cookie-token) - [通过Cookie Token获取Hk4e Token](#通过cookie-token获取hk4e-token) +- [Action Ticket](#action-ticket) + - [通过SToken获取Action Ticket](#通过stoken获取action-ticket) - [Auth Key](#auth-key) - [通过SToken获取账号Auth Key A](#通过stoken获取账号auth-key-a) - [通过SToken获取账号Auth Key B](#通过stoken获取账号auth-key-b) @@ -177,18 +179,18 @@ _请求方式:POST_ | 字段 | 类型 | 内容 | 备注 | | ---- | ---- | ---- | ---- | -| aid | str | 米游社UID | | +| aid | str | 米游社账号UID | | | mid | str | 米游社MiHoYo ID | | | account_name | str | 空字符串 | | | email | str | 被隐藏的账号的绑定邮箱 | | | is_email_verify | num | 绑定邮箱是否通过验证 | | -| area_code | str | 账号绑定手机的区号 | | +| area_code | str | 账号绑定手机的国家号码 | | | mobile | str | 被隐藏的账号的绑定手机 | | -| safe_area_code | str | 账号安全手机的区号 | 历史遗留字段,现在安全手机的功能已经被移除了 | +| safe_area_code | str | 账号安全手机的国家号码 | 历史遗留字段,现在安全手机的功能已经被移除了 | | safe_mobile | str | 被隐藏的账号安全手机 | 历史遗留字段,现在安全手机的功能已经被移除了 | | realname | str | 被隐藏的账号实名认证姓名 | | | identity_code | str | 被隐藏的账号实名认证身份证号 | | -| rebind_area_code | str | 账号的换绑手机号的区号 | | +| rebind_area_code | str | 账号的换绑手机号的国家号码 | | | rebind_mobile | str | 被隐藏的账号的换绑手机号 | | | rebind_mobile_time | str | 0 | | | links | arr | 待调查 | | @@ -329,6 +331,121 @@ _请求方式:POST_ ``` +## Action Ticket + +### 通过SToken获取Action Ticket + +**国服:** + +_请求方式:GET_ + +> _需要验证Cookie_ +> +> SToken + +`https://api-takumi.mihoyo.com/auth/api/getActionTicketBySToken` + +**JSON请求:** + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ---- | +| action_type | str | 获取Action Ticket的用途
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 | 该账号的安全等级
3 高 | | +| black_endtime | str | 待调查 | | +| black_note | str | 待调查 | | +| gender | num | 性别 | | +| real_stat | num | 待调查 | | +| apple_name | str | 待调查 | | +| sony_name | str | 待调查 | | +| tap_name | str | 待调查 | | +| reactivate_ticket | str | 待调查 | | + +
+查看示例 + +```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": "" + } + } +} +``` + +
+ +**国际服:** + +`未知` + ## Auth Key ### 通过SToken获取账号Auth Key A diff --git a/other/authentication.md b/other/authentication.md index e785639..59d7d62 100644 --- a/other/authentication.md +++ b/other/authentication.md @@ -26,6 +26,8 @@ - [Account ID](#account-id) - [Login Ticket](#login-ticket) - [Cookie Token](#cookie-token) + - [Action Ticket](#action-ticket) + - [Auth Key](#auth-key) - [Game Token](#game-token) - [Hk4e Token](#hk4e-token) @@ -358,9 +360,13 @@ const final = `${t},${r},${ds}` // 最终结果 即`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 @@ -370,6 +376,8 @@ const final = `${t},${r},${ds}` // 最终结果 必须与[`mid`](#mihoyo-id)一起使用。 +在修改米游社账号的密码后将会发生变化。 + #### MiHoYo ID 分为与[LToken](#ltoken)一起使用的`ltmid_v2`,和与[SToken](#stoken)一起使用的`mid` @@ -378,7 +386,7 @@ const final = `${t},${r},${ds}` // 最终结果 #### 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不是必须传递的。 @@ -386,21 +394,35 @@ UID即米游社UID。这个Cookie不是必须传递的。 即`login_ticket`。 -`login_ticket`是米游社的登录凭证,可用于获取[SToken](#stoken)和[LToken](#ltoken)。隔一段时间刷新。 +`login_ticket`是米游社的登录凭证,可用于获取[SToken](#stoken)和[LToken](#ltoken)。 通常在[米游社通行证](https://user.mihoyo.com/)中登录获得。 +有效期为30分钟。 + #### Cookie Token 分为`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`为游戏登录凭证,通常用于扫码登录后获取其它Token。 +`game_token`为游戏登录凭证,通常用于获取其它Token。 #### Hk4e Token diff --git a/other/error_code.md b/other/error_code.md index ac90687..3d38a82 100644 --- a/other/error_code.md +++ b/other/error_code.md @@ -12,8 +12,8 @@ | ----- | ---- | ---- | | -10001 | invalid request | 该API需要验证请求头,请求头的一些字段缺失或错误
请查看[绕过检测与鉴权](other/authentication.md) | | -1 | param error
param {param} error: value must be greater than {max}
param {param} error: value must be in list [{n1} {n2} ... {nn}] | 传递的参数值错误
传递的参数`param`的值必须大于`max`
传递的参数`param`的值只能是`n1`、`n2`至`nn`其中之一 | -| 1008 | 用户信息不匹配 | 传递的参数不正确
(例如获取用户游戏账号信息的`role_id`为无效UID) | -| 10001 | Please login | 该API需要验证Cookie
请查看[绕过检测与鉴权](other/authentication.md#cookie) | +| 1008 | 用户信息不匹配 | 传递的参数不正确,例如获取用户游戏账号信息的`role_id`为无效UID | +| 10001 | Please login | 该API需要验证Cookie
请查看[绕过检测与鉴权](other/authentication.md#cookie) | | 1034 | | 请求遇到验证码 | ### `api-takumi.miyoushe.com`