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

Discord.py实现支持机器人自动发消息至新建私有频道问题

解决Discord机器人自动向新建工单频道发送消息的问题

你当前使用的on_private_channel_create事件并不适用,因为该事件仅会在用户与机器人的私信频道创建时触发,而Tickets机器人生成的是服务器内的私有文本频道(属于服务器频道范畴),所以这个事件不会被触发。

正确实现方案

使用on_guild_channel_create事件,该事件会在服务器内创建任何频道时触发,配合频道名称判断可以精准定位工单频道:

import discord

# 启用必要的Intents,Discord.py v2.x必须配置
intents = discord.Intents.default()
intents.guilds = True
intents.guild_messages = True

client = discord.Client(intents=intents)

@client.event
async def on_ready():
    print("bot is now online")

@client.event
async def on_guild_channel_create(channel):
    # 根据Tickets机器人的工单频道命名规则判断,示例为以"ticket-"开头
    if channel.name.startswith("ticket-"):
        try:
            await channel.send("您好!欢迎创建支持工单,我们会尽快为您处理问题!")
        except discord.Forbidden:
            print(f"无法向频道 {channel.name} 发送消息:权限不足")

client.run("YOUR_BOT_TOKEN")

关键注意事项

  • 权限配置:确保Tickets机器人创建频道时,你的机器人被赋予了该私有频道的「发送消息」权限,否则会抛出权限不足的异常
  • 频道判断优化:如果需要更精准的匹配,可以通过对比频道创建者ID(channel.created_by.id)确认是否为Tickets机器人创建的频道
  • Intents开启:前往Discord开发者门户,在机器人页面开启Guilds和Guild Messages权限,否则事件可能无法触发

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:54:15