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

如何检测Discord用户加入指定语音频道并向自己发送私信通知

Discord语音频道加入私信通知实现方案

前置检查

  • 首先在Discord开发者平台的Bot管理页,开启Server Members Intent和Message Content Intent两个权限开关,否则Bot无法正常获取用户状态、发送私信
  • 邀请Bot进入服务器时,确保已经授予Bot发送消息的相关权限

修改后可直接使用的代码

@bot.event
async def on_voice_state_update(member, before, after):
    # 替换为你自己的用户ID,用于接收通知私信
    my_user_id = 747390765428113418
    target_user = bot.get_user(my_user_id)
    # 替换为你要监听的指定语音频道ID
    target_voice_channel_id = 123456789012345678

    # 判断逻辑:用户之前不在任何语音频道,现在加入的是目标指定语音频道
    if before.channel is None and after.channel is not None and after.channel.id == target_voice_channel_id:
        # 控制台打印保留
        print(f"{member.name} 加入了指定语音频道")
        # 发送私信逻辑
        try:
            await target_user.send(f"通知:用户 {member.name} 已加入指定语音频道 {after.channel.name}")
        except Exception as e:
            print(f"私信发送失败,错误信息:{e}")

配置说明

  1. 上述代码中target_voice_channel_id需要替换为你要监听的语音频道实际ID,获取方法:打开Discord设置-高级-开启开发者模式,右键对应语音频道选择「复制ID」即可
  2. 如果你不需要限定指定频道,只要有人加入服务器任意语音频道都通知,删掉代码判断条件里的and after.channel.id == target_voice_channel_id部分即可

常见问题排查:如果私信发送失败,首先确认你和Bot在同一个服务器内,其次检查你的Discord隐私设置中,是否开启了对应服务器的「允许来自服务器成员的私信」选项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 07:36:03