- 【F】增加扫码登录获取Game Token的方法与接口

- 【F】补全账号Cookie的获取方式
- 【F】增加Cookie字段
- 【I】修改请求头描述
- 【I】更改部分文档中错误的目录结构
This commit is contained in:
Kamisato-Ayaka-233
2023-06-17 13:36:05 +08:00
parent 4e4ea9c9e0
commit a5876bcd10
8 changed files with 680 additions and 145 deletions

View File

@@ -1833,7 +1833,7 @@ _请求方式GET_
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| authkey_ver | num | 1 | |
| authkey | str | 验证密钥,用于标识游戏账号 | 获取方法:<br>1. 游戏内打开一次跃迁记录页面,然后在“游戏安装目录/StarRail_Data/webCaches/Cache/Cache_Data/data_2”寻找类似“<https://api-takumi.mihoyo.com/common/gacha_record/api/getGachaLog……>”的链接,该参数的值在其中<br>2. [通过Cookie获取用户`authkey`](hoyolab/user/info.md#通过cookie获取用户authkey) |
| authkey | str | 验证密钥,用于标识游戏账号 | 获取方法:<br>1. 游戏内打开一次跃迁记录页面,然后在“游戏安装目录/StarRail_Data/webCaches/Cache/Cache_Data/data_2”寻找类似“<https://api-takumi.mihoyo.com/common/gacha_record/api/getGachaLog……>”的链接,该参数的值在其中<br>2. [通过Cookie获取用户`authkey`B](hoyolab/user/info.md#通过cookie获取用户authkeyb) |
| lang | str | 语言,即返回数据中抽到的项目名称<br>zh-cn zh 简体中文<br>zh-tw 繁体中文<br>en-us en 英语<br>ru-ru ru 俄语<br>ja-jp ja 日语<br>以及其它国际语言代码 | |
| size | num | 返回数据中的最大数据数量。最小为0最大为20。若小于0则返回0个数据若大于20则返回最大20个数据 | |
| end_id | num | 见下文的说明 | |
@@ -2042,7 +2042,7 @@ _请求方式GET_
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| authkey_ver | num | 1 | |
| authkey | str | 验证密钥,用于标识游戏账号 | 获取方法:<br>1. 游戏内打开一次跃迁记录页面,然后在“游戏安装目录/StarRail_Data/webCaches/Cache/Cache_Data/data_2”寻找类似“<https://api-takumi.mihoyo.com/common/gacha_record/api/getGachaLog……>”的链接,该参数的值在其中<br>2. [通过Cookie获取用户`authkey`](hoyolab/user/info.md#通过cookie获取用户authkey) |
| authkey | str | 验证密钥,用于标识游戏账号 | 获取方法:<br>1. 游戏内打开一次跃迁记录页面,然后在“游戏安装目录/StarRail_Data/webCaches/Cache/Cache_Data/data_2”寻找类似“<https://api-takumi.mihoyo.com/common/gacha_record/api/getGachaLog……>”的链接,该参数的值在其中<br>2. [通过Cookie获取用户`authkey`B](hoyolab/user/info.md#通过cookie获取用户authkeyb) |
| lang | str | 语言,即返回数据中抽到的项目名称<br>zh-cn zh 简体中文<br>zh-tw 繁体中文<br>en-us en 英语<br>ru-ru ru 俄语<br>ja-jp ja 日语<br>以及其它国际语言代码 | |
| size | num | 返回数据中的最大数据数量。最小为0最大为20。若小于0则返回0个数据若大于20则返回最大20个数据 | |
| end_id | num | 见下文的说明 | |

View File

@@ -3,12 +3,12 @@
- [用户信息](#用户信息)
- [获取用户完整信息](#获取用户完整信息)
- [获取用户发布的文章](#获取用户发布的文章)
- [通过Cookie获取用户`authkey`A](#通过cookie获取账号authkeya)
- [通过Cookie获取用户`authkey`B](#通过cookie获取账号authkeyb)
---
## 获取用户完整信息
## 用户信息
### 获取用户完整信息
**国服:**
@@ -317,7 +317,7 @@ _请求方式GET_
</details>
## 获取用户发布的文章
### 获取用户发布的文章
**国服:**
@@ -340,130 +340,3 @@ _请求方式GET_
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
## 通过Cookie获取账号`authkey`A
<!-- `authkey`A。 -->
**国服:**
_请求方式POST_
> _需要验证Cookie_
>
> SToken
`https://api-takumi.miyoushe.com/account/auth/api/genAuthKey`
**JSON请求**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| game_biz | str | 米游社区域<br>bbs_cn 国服 | |
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码<br>1002 请求体的`game_biz`字段不正确 | |
| message | str | 返回消息 | |
| data | obj | `authkey`信息 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| sign_type | num | 2 | |
| authkey_ver | num | 1 | |
| authkey | str | `authkey`A | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"sign_type": 2,
"authkey_ver": 1,
"authkey": "..."
}
}
```
</details>
**国际服:**
`未知`
## 通过Cookie获取账号`authkey`B
在请求例如获取用户的游戏抽卡记录等API时需要使用到`authkey`B。
**国服:**
_请求方式POST_
> _需要验证请求头_
>
> `x-rpc-client_type``2`
>
> LK`salt`
>
> `DS1`
> _需要验证Cookie_
>
> SToken
`https://api-takumi.miyoushe.com/binding/api/genAuthKey`
<!--`https://hk4e-sdk.mihoyo.com/hk4e_cn/combo/granter/login/genAuthKey`-->
**JSON请求**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| game_biz | str | 获取的`authkey`B的游戏<br>hk4e_cn 《原神》<br>hkrpg_cn 《崩坏:星穹铁道》<br> | |
| game_uid | num | 游戏
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码<br>1002 请求体的`game_biz`字段不正确 | |
| message | str | 返回消息 | |
| data | obj | `authkey`信息 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| sign_type | num | 2 | |
| authkey_ver | num | 1 | |
| authkey | str | `authkey`B | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"sign_type": 2,
"authkey_ver": 1,
"authkey": "..."
}
}
```
</details>
**国际服:**
`未知`

441
hoyolab/user/token.md Normal file
View File

@@ -0,0 +1,441 @@
# 用户Token
- [Token](#token)
- [通过Login Ticket获取SToken和LToken](#通过login-ticket获取stoken和ltoken)
- [通过SToken获取Cookie Token](#通过stoken获取cookie-token)
- [通过Game Token获取SToken](#通过game-token获取stoken)
- [通过Game Token获取Cookie Token](#通过game-token获取cookie-token)
- [通过Cookie Token获取Hk4e Token](#通过cookie-token获取hk4e-token)
- [Auth Key](#auth-key)
- [通过SToken获取用户Auth Key A](#通过stoken获取账号auth-key-a)
- [通过SToken获取用户Auth Key B](#通过stoken获取账号auth-key-b)
---
## Token
### 通过Login Ticket获取SToken和LToken
**国服:**
_请求方式GET_
`https://api-takumi.mihoyo.com/auth/api/getMultiTokenByLoginTicket`
**参数:**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| token_types | num | 获取的Token的类型<br>1 仅SToken<br>2 仅LToken<br>3 SToken和LToken<br>4 无 | |
| login_ticket | str | 有效的Login Ticket | |
| uid | num | 对应的米游社账号UID | |
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码 | |
| message | str | 返回消息 | |
| data | obj | Token | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| list | arr | SToken或LToken | |
`data`对象→`list`数组→对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| name | str | Token类型<br>ltoken LToken<br>stoken SToken | |
| token | str | Token值 | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"list": [
{
"name": "stoken",
"token": "***"
},
{
"name": "ltoken",
"token": "***"
}
]
}
}
```
</details>
### 通过SToken获取Cookie Token
**国服:**
_请求方式GET_
> _需要验证Cookie_
>
> SToken
`https://api-takumi.mihoyo.com/auth/api/getCookieAccountInfoBySToken`
**参数:**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| stoken | str | 有效的SToken | |
| uid | num | 对应的米游社账号UID | |
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码 | |
| message | str | 返回消息 | |
| data | obj | Cookie Token和米游社UID | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| uid | str | 米游社UID | |
| cookie_token | str | SToken对应账号的Cookie Token | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"uid": "***",
"cookie_token": "***"
}
}
```
</details>
### 通过Game Token获取SToken
**国服:**
_请求方式POST_
> _需要验证请求头_
>
> `x-rpc-app_id`
`https://api-takumi.mihoyo.com/account/ma-cn-session/app/getTokenByGameToken`
**JSON请求**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| account_id | num | 对应的米游社账号UID | |
| game_token | str | 有效的Game Token | |
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码<br>-3005 未传递`x-rpc-app_id`请求头 | |
| message | str | 返回消息 | |
| data | obj | 账号的Token与隐私信息 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| token | obj | 米游社账号的SToken | |
| user_info | obj | 米游社账号敏感信息 | 一些个人信息已被隐藏 |
| realname_info | | 待调查 | |
| need_realperson | bool | 待调查 | |
`data`对象→`token`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| token_type | num | 1 | |
| token | str | 账号的SToken | |
`data`对象→`user_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| aid | str | 米游社UID | |
| mid | str | 米游社MiHoYo ID | |
| account_name | str | 空字符串 | |
| email | str | 被隐藏的账号的绑定邮箱 | |
| is_email_verify | num | 绑定邮箱是否通过验证 | |
| area_code | str | 账号绑定手机的区号 | |
| mobile | str | 被隐藏的账号的绑定手机 | |
| safe_area_code | str | 账号安全手机的区号 | 历史遗留字段,现在安全手机的功能已经被移除了 |
| safe_mobile | str | 被隐藏的账号安全手机 | 历史遗留字段,现在安全手机的功能已经被移除了 |
| realname | str | 被隐藏的账号实名认证姓名 | |
| identity_code | str | 被隐藏的账号实名认证身份证号 | |
| rebind_area_code | str | 账号的换绑手机号的区号 | |
| rebind_mobile | str | 被隐藏的账号的换绑手机号 | |
| rebind_mobile_time | str | 0 | |
| links | arr | 待调查 | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"token": {
"token_type": 1,
"token": "***"
},
"user_info": {
"aid": "*******",
"mid": "*******",
"account_name": "",
"email": "*********",
"is_email_verify": 1,
"area_code": "+86",
"mobile": "***********",
"safe_area_code": "",
"safe_mobile": "",
"realname": "***",
"identity_code": "******************",
"rebind_area_code": "",
"rebind_mobile": "",
"rebind_mobile_time": "0",
"links": []
},
"realname_info": null,
"need_realperson": false
}
}
```
</details>
### 通过Game Token获取Cookie Token
**国服:**
_请求方式GET_
`https://api-takumi.mihoyo.com/auth/api/getCookieAccountInfoByGameToken`
**参数:**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| account_id | num | 对应的米游社账号UID | |
| game_token | str | 有效的Game Token | |
**JSON返回**
根对象:
与[通过SToken获取Cookie Token](#通过stoken获取cookie-token)→根对象的结构相同。
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"uid": "317832114",
"cookie_token": "O4ljtFwozX0UzHg29PDffnEBQPMYxmzcEJpe5Fgz"
}
}
```
</details>
### 通过Cookie Token获取Hk4e Token
**国服:**
_请求方式POST_
> _需要验证Cookie_
>
> Account ID`account_id`
>
> Cookie Token`cookie_token`
`https://api-takumi.mihoyo.com/auth/api/getCookieAccountInfoByGameToken`
**参数:**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| account_id | num | 对应的米游社账号UID | |
**JSON返回**
根对象:
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"game": "hk4e",
"region": "cn_gf01",
"game_uid": "222681079",
"game_biz": "hk4e_cn",
"level": 58,
"nickname": "※青衫入雨※",
"region_name": "天空岛"
}
}
```
</details>
## Auth Key
### 通过SToken获取账号Auth Key A
**国服:**
_请求方式POST_
> _需要验证Cookie_
>
> SToken
`https://api-takumi.miyoushe.com/account/auth/api/genAuthKey`
**JSON请求**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| game_biz | str | 米游社区域<br>bbs_cn 国服 | |
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码<br>1002 请求体的`game_biz`字段不正确 | |
| message | str | 返回消息 | |
| data | obj | Auth Key A | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| sign_type | num | 2 | |
| authkey_ver | num | 1 | |
| authkey | str | Auth Key A | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"sign_type": 2,
"authkey_ver": 1,
"authkey": "***"
}
}
```
</details>
**国际服:**
`未知`
### 通过SToken获取账号Auth Key B
用例获取用户的游戏抽卡记录等API需要使用到Auth Key B。
**国服:**
_请求方式POST_
> _需要验证请求头_
>
> `x-rpc-client_type``2`
>
> LK`salt`
>
> `DS1`
> _需要验证Cookie_
>
> SToken
`https://api-takumi.miyoushe.com/binding/api/genAuthKey`
<!--`https://hk4e-sdk.mihoyo.com/hk4e_cn/combo/granter/login/genAuthKey`-->
**JSON请求**
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| game_biz | str | 获取的`authkey`B的游戏<br>hk4e_cn 《原神》国服<br>hkrpg_cn 《崩坏:星穹铁道》国服<br> | |
| game_uid | num | 用户的游戏UID | |
**JSON返回**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| retcode | num | 返回码<br>1002 请求体的`game_biz`字段不正确 | |
| message | str | 返回消息 | |
| data | obj | Auth Key B | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | ---- | ---- |
| sign_type | num | 2 | |
| authkey_ver | num | 1 | |
| authkey | str | Auth Key B | |
<details>
<summary>查看示例</summary>
```json
{
"retcode": 0,
"message": "OK",
"data": {
"sign_type": 2,
"authkey_ver": 1,
"authkey": "***"
}
}
```
</details>
**国际服:**
`未知`