Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[新增/更新请求] 根据文档实现接口时发现的问题 #1161

Open
1 task done
Drelf2018 opened this issue Dec 28, 2024 · 4 comments
Open
1 task done

[新增/更新请求] 根据文档实现接口时发现的问题 #1161

Drelf2018 opened this issue Dec 28, 2024 · 4 comments

Comments

@Drelf2018
Copy link

提交前请确认

  • 我已检索仓库中文档,不包含所提及内容,或所提及内容在本仓库中存在错误,且 Issues、Pull Requests 中无相关提交

API 来源

Web 端(含 h5)

API 类型

REST

API 地址

No response

详情描述

因为还未实现所有 API ,本 Issue 将在每次遇到问题时持续更新

@Drelf2018
Copy link
Author

这里的 // Sort keys 部分是没有意义的,因为后续会将排序好的键又重新放回 query := url.Values{} 中,这个 url.Values 本质是一个字典,go 的字典是没有顺序的。

func encWbi(params map[string]string, imgKey, subKey string) map[string]string {
mixinKey := getMixinKey(imgKey + subKey)
currTime := strconv.FormatInt(time.Now().Unix(), 10)
params["wts"] = currTime
// Sort keys
keys := make([]string, 0, len(params))
for k := range params {
keys = append(keys, k)
}
sort.Strings(keys)
// Remove unwanted characters
for k, v := range params {
v = sanitizeString(v)
params[k] = v
}
// Build URL parameters
query := url.Values{}
for _, k := range keys {
query.Set(k, params[k])
}
queryStr := query.Encode()
// Calculate w_rid
hash := md5.Sum([]byte(queryStr + mixinKey))
params["w_rid"] = hex.EncodeToString(hash[:])
return params
}

@Drelf2018
Copy link
Author

这个接口现在要加上 w_sender_uidw_receiver_id 两个 query 参数并进行 wbi 验证。

参数值同 body 部分中的含义

## 发送私信(web端)
> https://api.vc.bilibili.com/web_im/v1/web_im/send_msg
*请求方式:POST*
认证方式:Cookie(SESSDATA)
**仅支持发送 `msg[msg_type]``1``2``5` 的私信**
调用该接口同时会将该会话设置为已读

@Drelf2018
Copy link
Author

已失效

# 检查昵称是否可注册
## 检查昵称
> https://passport.bilibili.com/web/generic/check/nickname
*请求方式:GET*
也可用于判断指定昵称的用户是否存在

@Drelf2018
Copy link
Author

Drelf2018 commented Dec 28, 2024

这个是 go 语言中对格式化时间定义的规则,在 go 语言使用 time.Format 时要传入一个时间的字符串模板。

例如 2006-01-02 15:04:05 表示的就是常规 yyyy-MM-dd HH:mm:ss 的含义。

所以这个接口的这个字段返回的值是 241218 符合字段名中 060102 的描述🤣

| format060102 | num | (?) | |

同时这个接口的返回值也拓展了好几个字段,因为有涉及隐私信息的字段,这里不做展示。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant