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

如何在不添加机器人的情况下用Python通过Discord Server ID获取所有Channel ID

解决Discord API 401未授权错误(无需添加机器人获取服务器频道ID)

你的问题核心在于用错了令牌类型,并且误解了Bot Token的权限逻辑:

  • 你用的是Bot Token,但Bot必须加入目标服务器并拥有对应权限才能调用/guilds/{server_id}/channels接口,这和你“无需添加机器人”的需求完全矛盾,所以返回401未授权。
  • 要满足无需加机器人的要求,你需要使用个人用户令牌(User Token)——只要你自己的账号在目标服务器里,就能通过用户令牌获取频道列表。

修改后的代码

import requests

# 替换成你的个人用户令牌
USER_TOKEN = "your-personal-user-token-here"

def get_channels(server_id):
    headers = {
       'Authorization': f'User {USER_TOKEN}'
    }
    channels_url = f'https://discord.com/api/v10/guilds/{server_id}/channels'
    response = requests.get(channels_url, headers=headers)
    
    if response.status_code == 200:
        # 提取所有频道ID
        channel_ids = [channel['id'] for channel in response.json()]
        print(channel_ids)
    else:
        print(f"请求失败: {response.json()}")

get_channels(1454583875786506444)

关键注意事项

  • 令牌安全:用户令牌相当于账号的钥匙,绝对不能泄露给他人,否则对方可以完全控制你的Discord账号。
  • 服务条款限制:Discord官方不鼓励使用用户令牌做自动化操作,这种方式仅限个人自用场景,大规模或违规使用可能导致账号封禁。
  • 基础权限要求:确保你的账号在目标服务器中拥有查看频道的权限(普通成员默认都具备),否则依然会返回权限错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 18:04:53