You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Discord REST API获取语音频道成员列表?

如何通过Discord REST API获取语音频道成员列表

你遇到的404错误是因为Discord REST API不存在/guilds/{guild_id}/channels/{channel_id}/members这个端点,这个路径无效,所以无论使用bot令牌还是用户令牌都会返回404。

要通过REST API获取语音频道的成员,需要分两步操作:

步骤1:获取服务器的所有成员

使用GET /guilds/{guild_id}/members端点获取服务器内的成员列表。该端点支持分页,默认每次返回100个成员,最多一次返回1000个,需通过limit和after参数处理分页逻辑。

步骤2:筛选目标语音频道的成员

每个成员对象包含voice_state字段,其中的channel_id对应成员当前所在的语音频道ID。我们只需筛选出voice_state.channel_id与目标频道ID匹配的成员即可。

完整代码示例

import requests
import os

TOKEN = os.getenv("DISCORD_TOKEN")
GUILD_ID = "你的服务器ID"
TARGET_CHANNEL_ID = "目标语音频道ID"

headers = {
    "Authorization": f"Bot {TOKEN}"
}

def get_voice_channel_members(guild_id, channel_id):
    members = []
    after = None
    while True:
        params = {"limit": 1000}
        if after:
            params["after"] = after
        # 请求服务器成员列表
        response = requests.get(
            f"https://discord.com/api/v9/guilds/{guild_id}/members",
            headers=headers,
            params=params
        )
        if response.status_code != 200:
            print(f"请求失败: {response.text}")
            break
        batch = response.json()
        if not batch:
            break  # 无更多成员可获取
        # 筛选目标频道内的成员
        for member in batch:
            voice_state = member.get("voice_state")
            if voice_state and voice_state.get("channel_id") == channel_id:
                members.append(member)
        # 更新分页标记,获取下一页数据
        after = batch[-1]["user"]["id"]
    return members

# 调用函数并输出结果
voice_members = get_voice_channel_members(GUILD_ID, TARGET_CHANNEL_ID)
for member in voice_members:
    print(f"成员ID: {member['user']['id']}, 用户名: {member['user']['username']}")

注意事项

  • 权限要求:你的bot需要拥有GUILD_MEMBERS(获取服务器成员)和VOICE_STATE_READ(查看语音状态)权限,且需在目标服务器中正确配置权限。
  • 分页处理:若服务器成员超过1000人,必须通过after参数循环请求,直到返回空列表为止。
  • 令牌类型:必须使用bot令牌,用户令牌无法调用/guilds/{guild_id}/members端点(用户令牌仅能获取自身信息或好友列表)。

内容的提问来源于stack exchange,提问作者Droltromed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:52:20