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

如何在discord.py中通过频道名称获取Channel ID?

通过频道名称获取指定Discord服务器的频道ID

我来帮你搞定这个问题!你之前的代码没拿到预期结果,主要是对discord.utils.get的筛选逻辑和频道对象的属性理解有偏差,咱们一步步修正:

问题出在哪?

你写的channels = discord.utils.get(client.get_all_channels(), guild__name='Test Server')有两个核心问题:

  1. client.get_all_channels()会返回机器人加入的所有服务器的所有频道,范围太广,很容易匹配到错误的对象;
  2. guild__name不是有效的筛选参数——discord.utils.get的关键字参数只能匹配对象的直接属性,频道对象的guild是一个Guild实例,没法用双下划线嵌套筛选属性。你得到的“Text Channels”大概率是服务器里的分类频道,刚好被错误的筛选逻辑命中了。

正确的实现步骤

要在指定服务器里精准找频道,得先定位目标服务器,再在该服务器的频道列表里筛选:

1. 获取目标服务器对象

先通过服务器名称(或更准确的服务器ID)找到对应的Guild:

target_guild = discord.utils.get(client.guilds, name='Test Server')

小提示:如果有多个同名服务器,用服务器ID获取更靠谱:target_guild = client.get_guild(你的服务器ID)

2. 在目标服务器里找指定频道

拿到服务器对象后,就能在它的文本频道列表(text_channels)或全频道列表(channels,包含语音、分类等)里筛选目标频道:

# 找文本频道,指定频道名称(严格匹配大小写)
target_channel = discord.utils.get(target_guild.text_channels, name='你的频道名称')

如果需要忽略大小写匹配,可以加上case_insensitive=True参数:

target_channel = discord.utils.get(target_guild.text_channels, name='你的频道名称', case_insensitive=True)

3. 获取频道ID

如果成功找到频道,直接取id属性即可:

if target_channel:
    print(f"目标频道ID:{target_channel.id}")
else:
    print("未找到指定频道!")

完整代码示例

把这些逻辑整合到机器人上线事件里(确保机器人登录后执行):

import discord
from discord.ext import commands

# 开启必要的权限
intents = discord.Intents.default()
intents.message_content = True

client = commands.Bot(command_prefix='!', intents=intents)

@client.event
async def on_ready():
    print(f'已登录为 {client.user}')
    
    # 定位目标服务器
    target_guild = discord.utils.get(client.guilds, name='Test Server')
    if not target_guild:
        print("找不到名为'Test Server'的服务器!")
        return
    
    # 定位目标文本频道(这里以欢迎频道为例)
    target_channel = discord.utils.get(target_guild.text_channels, name='Welcome', case_insensitive=True)
    if target_channel:
        print(f"找到频道:{target_channel.name},ID:{target_channel.id}")
    else:
        print("未找到指定的频道!")

client.run('你的机器人Token')

额外说明

像Mee6这类成熟机器人设置欢迎页面的核心逻辑,也是先绑定目标服务器,再选择该服务器内的频道——这样既能保证准确性,也不会跨服务器误操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:02:55