DayzHUBDiscord

功能Premium 1

机器人 API

在你自己的网站上展示服务器数据

在控制面板中创建一个秘密令牌,你的网站或工具就能读取服务器的实时数据:等级排行榜、进行中的抽奖、工单数量、游戏服务器状态和商店商品。它只能读取。任何操作都无法更改你的服务器,选择退出数据处理的成员也始终保持匿名。

bot-api

🚫

不在 Discord 发消息

机器人 API 通过你的控制面板和你自己的网站运行。不会在 Discord 中发布任何内容。

如何使用

几分钟即可上手

  1. 01

    创建令牌

    控制面板,管理,机器人 API:给它起个名字,勾选它可以读取的内容,然后复制。它只显示一次。

  2. 02

    请保密

    像密码一样把它存放在你自己的服务器上。每个网站或工具使用一个令牌。

  3. 03

    请求你的数据

    你的网站在 Authorization 请求头中发送令牌,并以 JSON 格式取回你的数据。

  4. 04

    随时撤销

    在机器人 API 页面点击“撤销”,令牌会立即失效。

你可以做什么

机器人 API 让你自己的网站或工具读取 Discord 服务器的实时数据。它只能读取。你构建的任何东西都无法更改服务器或影响成员。下面是一些人们一个下午就能搭好的点子。

  • 排行榜小组件在你的社区网站上展示等级前 10 名的幸存者。
  • 抽奖倒计时把正在进行的抽奖、奖品和结束时间放在你的首页。
  • 工单数量显示有多少工单处于打开状态以及团队的回复速度,可用于管理员仪表板,或“我们大约 10 分钟内回复”的横幅。
  • 状态徽章显示你的游戏服务器是否在线以及有多少玩家。
  • 商店商品列表在你自己的网站上列出捐赠商店的商品和价格,并直接链接到结账页面。

自己不会写代码?把这个页面发给负责你网站的人,他们会知道怎么做。

分步操作:创建你的令牌

令牌是一长串秘密密码,让一个网站或工具可以读取你的服务器。你在控制面板中创建它。

  1. 01

    打开机器人 API 页面

    登录 dayzhub.net,打开控制面板,选择你的服务器,在侧边菜单的“管理”部分点击机器人 API。只有拥有“管理服务器”权限的人才能看到。团队访问成员看不到。

  2. 02

    给它起个名字

    输入一个简短的名称,说明它的用途,例如“网站排行榜”。每个网站或工具使用一个令牌。

  3. 03

    选择它可以读取的内容

    勾选你需要的数据,例如抽奖或等级排行榜。勾选越少越安全。以后随时可以再创建另一个令牌。

  4. 04

    允许的网站(仅在需要时)

    保持为空,除非访客浏览器中的网页要直接调用 API。那种情况下请准确填写你的网站地址,例如 https://yoursite.com,末尾不带路径。

  5. 05

    点击“创建令牌”并复制

    会出现一个显示你的令牌的框,令牌以 dhba_ 开头。点击“复制”,并立即粘贴到安全的地方。它只显示一次。如果丢失,请创建一个新的。

  6. 06

    请保密

    把令牌当作密码对待。不要在 Discord 中发布,不要放进公开的 GitHub 项目,也不要粘贴到访客能看到的网页里。请把它保存在你自己的服务器或密码管理器中。

你的第一个请求

我们来检查你的令牌是否有效。你需要两样东西:刚复制的令牌,以及你的服务器 ID(在 Discord 设置中开启开发者模式,然后右键点击你的服务器并选择“复制服务器 ID”)。下面的第一个调用只需要令牌。

在每个示例中,把 dhba_YOUR_TOKEN 替换为你真实的令牌。每个示例都在名为 Authorization 的请求头中发送令牌。把它放在网址里是行不通的。

Windows PowerShell (use curl.exe with the .exe, plain curl means something else in PowerShell)

curl.exe -H "Authorization: Bearer dhba_YOUR_TOKEN" https://dayzhub.net/api/v1/bot/me

curl (macOS, Linux and most hosting)

curl -H "Authorization: Bearer dhba_YOUR_TOKEN" https://dayzhub.net/api/v1/bot/me

JavaScript on your own server (Node 18 or newer). Keep the token in an environment variable.

const res = await fetch("https://dayzhub.net/api/v1/bot/guilds/YOUR_SERVER_ID/giveaways?status=active", {
  headers: { Authorization: "Bearer " + process.env.DAYZHUB_BOT_API_TOKEN }
});
const { ok, data } = await res.json();
console.log(data);

JavaScript in a visitor's browser (needs the Allowed website setting on the token, and shows the token to everyone, so use a token with the fewest boxes ticked)

fetch("https://dayzhub.net/api/v1/bot/guilds/YOUR_SERVER_ID/leaderboard/levels?limit=10", {
  headers: { Authorization: "Bearer dhba_YOUR_TOKEN" }
}).then(r => r.json()).then(j => console.log(j.data));

在访客浏览器中运行的页面,访客可以读到其中的内容,包括令牌。从你自己的服务器调用 API 才是安全的方式。浏览器调用只适用于只能读取无害公开信息的令牌。

返回的内容

每个响应都是 JSON。成功的响应包含 "ok": true 和你的数据。列表带有 "page" 部分:当 "hasMore" 为 true 时,把 "nextCursor" 的值作为 ?cursor= 传回即可获取下一页。日期使用 UTC。

GET /me: who the token belongs to

{
  "ok": true,
  "data": {
    "guildId": "123456789012345678",
    "name": "Website leaderboard",
    "prefix": "dhba_aB3dE",
    "scopes": ["leveling:read", "giveaways:read"],
    "allowedOrigin": null,
    "rateLimitPerMin": 60,
    "createdAt": "2026-10-01T12:00:00.000Z",
    "plan": "premium1",
    "limits": { "tokens": 2, "perMinute": 60 },
    "tokensUsed": 1
  }
}

GET /guilds/ID/leaderboard/levels?limit=2

{
  "ok": true,
  "data": [
    { "rank": 1, "member": { "id": "111111111111111111", "anonymous": false }, "xp": 18450, "level": 27 },
    { "rank": 2, "member": { "id": null, "anonymous": true }, "xp": 17020, "level": 26 }
  ],
  "page": { "limit": 2, "hasMore": true, "nextCursor": "eyJpZCI6IjY..." }
}

GET /guilds/ID/giveaways?status=active

{
  "ok": true,
  "data": [{
    "id": "6650f0c2a1b2c3d4e5f60718",
    "prize": "Premium VIP for 30 days",
    "status": "active",
    "type": "reaction",
    "winnerCount": 1,
    "entryCount": 86,
    "endsAt": "2026-10-08T18:00:00.000Z",
    "requirements": { "role": false, "verified": true, "minInvites": 0 },
    "host": { "id": "111111111111111111", "anonymous": false },
    "winners": []
  }],
  "page": { "limit": 25, "hasMore": false, "nextCursor": null }
}

GET /guilds/ID/tickets/summary

{
  "ok": true,
  "data": {
    "open": 4,
    "closed": 212,
    "total": 216,
    "last30Days": { "created": 38, "closed": 41, "averageRating": 4.7, "ratingCount": 29, "averageFirstResponseMinutes": 9.5 },
    "byCategory": [ { "category": "Support", "open": 3, "closed": 150 } ]
  }
}

GET /guilds/ID/shop/products

{
  "ok": true,
  "shop": { "name": "Survivor HQ Shop", "description": "Support the server", "slug": "survivor-hq", "url": "https://dayzhub.net/shop/survivor-hq" },
  "data": [{
    "id": "6650f0c2a1b2c3d4e5f60999", "name": "VIP Role", "slug": "vip-role", "description": "Priority queue and a gold name",
    "price": 9.99, "compareAtPrice": null, "currency": "EUR", "type": "subscription", "interval": "monthly",
    "thumbnailUrl": null, "featured": true, "inStock": true, "url": "https://dayzhub.net/shop/survivor-hq/vip-role"
  }],
  "page": { "limit": 25, "hasMore": false, "nextCursor": null }
}

GET /guilds/ID/server-status

{
  "ok": true,
  "data": {
    "listed": true,
    "servers": [{ "name": "Survivor HQ", "slug": "survivor-hq", "url": "https://dayzhub.net/s/survivor-hq", "online": true, "players": 42, "maxPlayers": 60, "address": "game.yourserver.gg:2302", "lastChangeAt": "2026-10-01T09:30:00.000Z" }]
  }
}

When something is wrong, for example a mixed-up server ID (HTTP 403)

{ "ok": false, "error": "guild_mismatch", "code": "guild_mismatch", "message": "This token belongs to another server", "requestId": "3f2b8c1e-5a7d-4e0b-9c64-1d2e3f4a5b6c" }

完整的端点列表和每个字段都在机器可读的描述中:/api/v1/bot/openapi.json。 每个响应都带有 X-Request-Id 头,错误响应中会以 requestId 重复它。联系支持时请提供它。

限制、套餐和隐私

  • 只读没有任何会更改内容的按钮。只响应 GET 请求。
  • 套餐你的服务器需要付费套餐或有效的免费试用。抽奖数据需要 Premium 2。商店列表需要真正的付费权限,因为免费试用不包含捐赠商店。
  • 你可以拥有多少个令牌Premium 1 包含 2 个有效令牌,Premium 2 包含 5 个,Premium 3 包含 10 个。免费试用或受赞助的服务器按 Premium 1 计算。撤销不再使用的令牌即可腾出名额。如果套餐降级,你已有的令牌仍可继续使用,只是在降到上限以下之前不能创建新令牌。
  • 速度限制每个令牌每分钟可发出的请求数:Premium 1 为 60,Premium 2 为 120,Premium 3 为 300;同一个网络地址每分钟 300。超出后会返回 429,并带有告诉你需等待多少秒的 Retry-After 头。
  • 友好地轮询响应中包含 ETag。把它放在 If-None-Match 头中发回,如果没有变化,你会收到一个很小的 304 响应,而不是完整数据。每 30 到 60 秒请求一次就足够了,大多数小组件可以更不频繁。
  • 绝不共享的内容工单的记录和消息、申请及其回答、付款和订单、电子邮件地址、名称和头像,以及参与抽奖的人。你只会得到数量,外加数字形式的 Discord ID,且仅限该功能本来就在 Discord 中公开展示人员的地方,例如抽奖主办人或等级排行榜。
  • 选择退出的成员任何使用过 /privacy optout 的人始终显示为匿名(id 为 null)。他们的排名和数据仍会计入,因此总数是对得上的。

故障排除

你看到的现象原因解决方法
401 unauthorized 或 invalid_token令牌缺失、输入有误、被截断或已被撤销。重新完整复制,包括开头的 dhba_,并以 Authorization: Bearer TOKEN 的形式发送。如果已被撤销,请创建一个新的。
403 guild_mismatch地址中的服务器 ID 不是该令牌所属的服务器。调用 /me 查看正确的 guildId,并使用它。
403 missing_scope该令牌没有被允许读取这类数据。创建一个新令牌,并勾选对应的选项。
403 feature_not_in_plan该功能不在你服务器的套餐内,例如没有 Premium 2 的抽奖。升级套餐,或不要请求这些数据。
403 plan_required服务器没有付费套餐,也没有有效的免费试用。在“账单”中开通套餐。API 会立即恢复工作。
403 origin_not_allowed另一个网站上的网页尝试使用该令牌。在令牌上把准确的网站设置为“允许的网站”(https://yoursite.com),或改为从你自己的服务器调用。
浏览器提示 CORS 错误该令牌没有设置允许的网站,因此浏览器不被允许调用它。创建一个在“允许的网站”中填写了你网站的令牌,或把调用移到你的服务器上。
404 shop_not_enabled你的捐赠商店未开启。在控制面板中开启商店。
429 rate_limited一分钟内请求过多。等待 Retry-After 头中指定的秒数,然后降低请求频率。使用 ETag 和 304 响应。
在 PowerShell 中使用 curl 出现奇怪的错误在 PowerShell 中,curl 是另一个命令。输入 curl.exe,而不是 curl。
503 unavailable我们这边出现了短暂的小故障。API 从不返回不完整的响应。一分钟后再试。

撤销和更换令牌

如果令牌被误分享、被公开发布,或者知道它的人已离开你的团队,请立即这样做。

  1. 01

    先创建新令牌

    在机器人 API 页面创建一个设置相同的替代令牌,并复制它。

  2. 02

    切换你的网站或工具

    把新令牌放到所有使用旧令牌的地方,并检查一切仍然正常。

  3. 03

    撤销旧令牌

    在你的令牌列表中,点击旧令牌的“撤销”并确认。它会立即失效,仍在使用它的任何东西都会收到 401。创建和撤销操作会记录在你服务器的审计日志中,但令牌本身绝不会被记录。

常见问题

API 能更改我服务器上的任何内容吗?

不能。它是只读的,没有办法给令牌更多权限。

我弄丢了令牌,能再显示一次吗?

不能。我们只保存令牌的指纹,所以无法再次显示。请撤销它并创建一个新的。

一个令牌可以用于多个服务器吗?

不可以。令牌属于一个服务器,只能读取该服务器。请在每个服务器的控制面板中分别创建令牌。

我需要会写代码吗?

要搭建小组件的话需要,或者请负责你网站的人来做。控制面板这部分只要两分钟。

我能通过 API 看到谁参与了我的抽奖吗?

不能。你会得到参与人数和以 Discord ID 表示的获奖者,但永远得不到参与者名单。

为什么某位成员显示为匿名?

他们通过 /privacy optout 选择退出了数据处理。我们在所有地方都尊重这一点,这里也不例外。

免费试用可以用吗?

可以,在试用有效期间你可以创建令牌,并读取试用包含的功能。捐赠商店不包含在试用中。

为什么我不能再创建一个令牌?

每个套餐都有上限:Premium 1 为 2 个有效令牌,Premium 2 为 5 个,Premium 3 为 10 个。请撤销不再使用的令牌,或升级你的套餐。Bot API 页面会显示你已使用多少个。

如果我的套餐到期,令牌会怎样?

它会继续存在,但在你重新拥有套餐或试用之前,会返回 403 plan_required。不会删除任何内容。

实时预览

在 Discord 中的效果

Premium 3 解锁的内容 — 就像在你的服务器中显示的那样。

Premium 3€6.99 / 月

bot-api

🚫

不在 Discord 发消息

机器人 API 通过你的控制面板和你自己的网站运行。不会在 Discord 中发布任何内容。

  • Premium 2 的全部内容
  • 每个服务器最多 10 个有效令牌
  • 每个令牌每分钟 300 个请求

套餐

你将获得

每个等级都包含列出的内容。随时可以升级 — 你的设置会保留。

Premium 1

€2.99/ 月

🎁 Premium 1 包含 7 天免费试用(捐赠商店和免费模组在订阅后解锁)

  • 只读访问你自己的服务器数据
  • 每个服务器最多 2 个有效令牌
  • 等级排行榜、工单概览、建议概览、游戏服务器状态
  • 每个令牌每分钟 60 个请求
  • 免费试用期间可用
Premium 2

€4.99/ 月

  • Premium 1 的全部内容
  • 每个服务器最多 5 个有效令牌
  • 每个令牌每分钟 120 个请求
  • 抽奖数据(进行中和已结束的抽奖)
Premium 3

€6.99/ 月

  • Premium 2 的全部内容
  • 每个服务器最多 10 个有效令牌
  • 每个令牌每分钟 300 个请求

🔌 机器人 API

在你自己的网站上展示服务器数据

用 Premium 1 把 DayZ Hub 加入你的服务器,准备好后再升级。

DayZ Hub

Cookie 设置

选择是否允许 DayZ Hub 使用我们无 Cookie 的统计功能记录你的访问。你可以随时更改。

必要 Cookie用于登录、安全、你的语言设置以及保存此选择。
始终启用
统计 — Plausible在不使用 Cookie、不收集个人数据的情况下统计页面访问量,帮助我们改进 DayZ Hub。