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

Discord.py中如何获取指定语音频道ID?代码返回None求排查

解决Discord.py获取语音频道返回None的问题

嘿,我来帮你排查这个问题!你的代码返回None,最核心的错误出在**type参数的写法**上,另外也给你列几个其他可能的排查点:

1. 最直接的错误:type参数用了字符串而非枚举值

你把ChannelType.voice用引号包成字符串"ChannelType.voice"传进去了,但实际上discord.ChannelType.voice是discord库提供的枚举常量,不能加引号。修复后的代码应该是这样:

import discord

channel = discord.utils.get(message.guild.channels, name='general', type=discord.ChannelType.voice)
print(channel)

2. 其他可能导致返回None的原因

如果修复后还是不行,可以检查这些点:

  • 频道名称严格匹配:discord.utils.get的name参数是完全匹配的,比如频道实际叫General(首字母大写)或者general-chat,你写'general'就会找不到,要确保名称完全一致。
  • 机器人权限不足:你的机器人需要拥有View Channels权限,不然它无法看到目标频道,自然获取不到对象。
  • 重名频道存在:如果服务器里有多个叫general的语音频道,discord.utils.get只会返回第一个匹配的,你可能需要结合其他条件(比如所属分类)来精准筛选。
  • 频道类型是否正确:确认目标频道确实是语音频道,而不是舞台频道(如果是舞台频道,要改用discord.ChannelType.stage_voice)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:23:49