投票 API
公开 API:获取投票列表并检查玩家是否已投票(按 Discord 或昵称)。适用于 Discord 机器人。
更新于 2026年10月13日
公开投票 API 让您的集成能够读取服务器的投票数据:获取投票列表、检查特定玩家是否已投票,以及查看统计数据。它最常见的用途是让 Discord 机器人给投票的玩家发放头衔或奖励。
访问权限为只读——您无法通过 API 更改投票。
获取 API 密钥
- 打开您的服务器页面并完成服主验证。
- 在服务器设置中,打开 “API 密钥” 部分,然后点击 “创建密钥”。
- 复制密钥,它的格式类似
rsk_live_…——它只显示一次。请像保管密码一样保存它。
您可以将密钥限制为单个服务器,也可以为您的所有服务器签发。如果密钥泄露,请在同一部分撤销它并创建一个新的。
重要: 不要将密钥发布在开源代码、代码仓库或公开可访问的机器人配置中。如果密钥泄露,请撤销它。
基础 URL 与授权
基础 URL:https://api.millida.net/v2/rating/api
密钥通过 X-Api-Key 请求头传递(或 Authorization: Bearer …):
curl https://api.millida.net/v2/rating/api/stats \
-H "X-Api-Key: rsk_live_YOUR_KEY"
如果密钥是为租户的所有服务器签发的,请在每次请求中添加 serverId 参数。如果密钥绑定到单个服务器,则可以省略此参数。
检查玩家的投票
Discord 机器人的主要场景:“这个人投票了吗”。端点为 GET /votes/check。
参数:
discordId或nickname——您要检查的对象(两者必填其一);since——时间段:today(默认,从 UTC 当天开始)或小时数、天数——24h、7d、30d;serverId——如果密钥是为所有服务器签发的,则必填。
curl "https://api.millida.net/v2/rating/api/votes/check?discordId=123456789012345678&since=today" \
-H "X-Api-Key: rsk_live_YOUR_KEY"
响应:
{
"voted": true,
"serverId": "srv…",
"voteId": "clx…",
"votedAt": "2026-06-16T10:12:00.000Z",
"discordId": "123456789012345678",
"nickname": "Steve",
"since": "2026-06-16T00:00:00.000Z"
}
如果 voted 为 true,表示该玩家在所选时间段内投出了有效票。只有有效票才会被计入(刷票和被拒绝的投票不计入。)
关于通过 Discord 检查: 只有当玩家在其 Millida 个人资料中指定了 Discord 账号时,投票才会与 Discord 账户关联。如果部分玩家没有关联 Discord,请通过
nickname检查,或让玩家在其个人资料中关联 Discord。
投票列表
GET /votes 返回服务器的投票,从最新到最旧。
参数(全部可选):
status——VALID、HELD、REJECTED_FRAUD、REJECTED_RATE_LIMIT、REJECTED_NO_PLAY_HISTORY或ALL(默认返回全部);discordId、nickname——按玩家筛选;from、to——ISO 格式的日期范围;limit——返回数量(1–200,默认 50);cursor——来自nextCursor字段的下一页游标。
curl "https://api.millida.net/v2/rating/api/votes?status=VALID&limit=100" \
-H "X-Api-Key: rsk_live_YOUR_KEY"
响应:
{
"votes": [
{
"id": "clx…",
"serverId": "srv…",
"discordId": "123456789012345678",
"nickname": "Steve",
"status": "VALID",
"votedAt": "2026-06-16T10:12:00.000Z"
}
],
"nextCursor": "eyJ…"
}
要获取下一页,请将 cursor 设置为 nextCursor 并重复请求。当 nextCursor 为 null 时,表示没有更多数据。投票者的 IP 地址不会通过 API 传递。
统计数据
GET /stats 返回服务器的汇总计数器:
{
"serverId": "srv…",
"validToday": 42,
"valid24h": 50,
"valid30d": 1280,
"totalValid": 9001,
"totalAll": 9500
}
示例:Discord 机器人根据投票发放角色
async function hasVotedToday(discordId) {
const res = await fetch(
`https://api.millida.net/v2/rating/api/votes/check?discordId=${discordId}&since=today`,
{ headers: { "X-Api-Key": process.env.MILLIDA_RATING_KEY } },
);
const data = await res.json();
return data.voted === true;
}
通过 Discord 命令调用此函数,如果玩家已投票,则发放角色。
限制
- API 为只读。
- 请求频率有限制——对于按命令检查来说绰绰有余。不要在紧密循环中轮询 API。
- 密钥只能看到您服务器的投票。