Paste site API zh CN - tom5454/CustomPlayerModels GitHub Wiki
接口地址:https://paste.tom5454.com/
Java中的完整实现:CPM中的粘贴客户端
接口路径:raw/<粘贴ID>
接口路径:api/connect?name=<玩家名称>
响应格式:(JSON)
-
id
:会话 ID,后续请求中需要使用 -
key
:Minecraft 加入服务器所需的密钥
此接口会调用 Minecraft 的“加入服务器”API。该认证机制与 Minecraft 客户端加入服务器时所使用的机制相同。
Minecraft 官方认证地址:https://sessionserver.mojang.com/session/minecraft/join
,需要发送 POST 请求。
请求体格式(JSON):
-
accessToken
:Minecraft 帐号的访问令牌 -
selectedProfile
:Minecraft 帐号的 UUID(字符串格式,不包含-
字符) -
serverId
:基于服务器标识生成的字符串(通过key
计算)
服务器ID 计算方式:
SHA-1 哈希:
tom5454-paste
、<会话ID>
和 <key>
作为 ASCII 字符串
将结果哈希值转换为十六进制字符串,即为 serverId
。
Java示例代码:
byte[] mojKey = Base64.getDecoder().decode(key); // 来自 API 的密钥字符串
// SHA-1 散列所有数据
byte[] mojangKey = digestData("tom5454-paste".getBytes(), session.getBytes(), mojKey);
String serverId = new BigInteger(mojangKey).toString(16);
完成会话设置前,请先调用 认证 接口。
接口路径:api/session
HTTP headers:
- Session:<连接的会话 ID>
响应:(JSON) 成功时返回空 JSON
接口路径:api/list
HTTP headers:
- Session:<连接的会话 ID>
需要身份验证
响应:(JSON)
- 文件(数组对象)
(每个对象)
- id:粘贴id
- name:粘贴名称
- time: 上传时间(以毫秒为单位的 UTC 时间)
- maxSize
- maxFiles
接口路径;api/upload
HTTP headers:
- Session:<连接的会话 ID>
- Content-Length: 文件长度
- File-Name: 粘贴名称
需要身份验证和POST 请求
请求体:粘贴内容
响应:(JSON)
- id:新生成的随机粘贴 ID
接口路径:api/delete?file=<paste_id>
HTTP headers:
- Session:<连接的会话 ID>
需要身份验证
响应:(JSON) 成功时返回空 JSON
接口路径:api/update?file=<paste_id>
HTTP headers:
- Session:<连接的会话 ID>
- Content-Length:文件长度
需要身份验证和POST 请求
请求体:粘贴内容
响应:(JSON)
成功时返回空 JSON
接口路径:api/browser_login
HTTP headers:
- Session:<连接的会话 ID>
需要身份验证
响应:(JSON)
- id:浏览器登录令牌,有效期 5 分钟,可用于
/login.html?id=<id>
页面
接口路径:api/app_login
HTTP headers:
- AppID:<应用程序 ID>
响应:(JSON)
- id:应用程序登录令牌,有效期 5 分钟,可用于
/auth.html?id=<id>
页面
接口路径:api/app_check
HTTP headers:
- AppID:<应用程序 ID>
- Session:<应用程序登录的 ID>
响应:(JSON)
- id:粘贴应用程序令牌
或者 - 空 JSON(如果尚未授权)
接口路径:api/app_token_req
HTTP headers:
- AppID:<应用程序 ID>
- Session:<应用程序登录的 ID>
响应:(JSON)
响应:(JSON)
- error:人类可读的错误消息
- errorMessage:错误消息的翻译键