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

使用discord.py创建自定义邀请链接报错:'Guild'无'create_invite'属性

问题解决:Discord机器人创建自定义邀请链接失败

核心错误原因

你遇到的'Guild' object has no attribute 'create_invite'错误,是因为discord.py中不存在Guild.create_invite()方法——创建普通邀请需要针对服务器内的文本/语音频道调用create_invite(),但你要实现的是服务器专属的自定义 vanity 邀请链接(比如discord.gg/你的自定义名称),这和普通邀请不是同一类型的功能。

代码修复及问题点梳理

原代码存在多处逻辑和语法问题,以下是修正后的完整代码,以及对应的问题说明:

修正后的代码

@custominvite_group.command(name="new", description="创建新的自定义邀请链接")
@app_commands.describe(name="自定义邀请链接的名称")
async def newci(interaction: Interaction, name: str):
    # 检查名称长度限制
    if len(name) > 25:
        await interaction.response.send_message("自定义邀请名称过长(最多25字符)", ephemeral=True)
        return
    # 检查服务器Boost等级要求
    if interaction.guild.premium_tier < 3:
        await interaction.response.send_message("该服务器Boost等级不足3级,无法设置自定义邀请链接", ephemeral=True)
        return
    
    try:
        # 获取当前服务器的vanity邀请链接
        current_vanity = await interaction.guild.vanity_invite()
        # 若已有vanity链接,先清空原有code
        if current_vanity:
            await interaction.guild.edit(vanity_url_code=None, reason="替换自定义邀请链接")
        
        # 设置新的vanity邀请链接code
        await interaction.guild.edit(vanity_url_code=name, reason="创建新的自定义邀请链接")
        # 发送成功通知
        await interaction.response.send_message(f"新的自定义邀请链接:https://discord.gg/{name}")
    except discord.errors.HTTPException as e:
        # 针对性处理链接名称已被占用的错误
        if e.code == 50035:
            await interaction.response.send_message("该邀请链接名称已被使用,请换一个试试", ephemeral=True)
        else:
            await interaction.response.send_message(f"操作失败:{str(e)}", ephemeral=True)
    except Exception as e:
        await interaction.response.send_message("未知错误,请稍后重试", ephemeral=True)

原代码的问题点

  1. 错误的API调用:
    服务器自定义邀请链接是服务器的属性,需通过Guild.edit(vanity_url_code=xxx)设置,而非调用不存在的Guild.create_invite()。

  2. 未定义变量:
    原代码中await invite[0].delete()里的invite从未定义,正确操作是修改服务器的vanity_url_code属性来替换原有链接。

  3. 语法错误:
    await new_invite.edit(reason="Changing the invite link name", code=name 末尾缺少闭合括号,导致代码无法正常运行。

  4. 模糊的异常处理:
    原代码直接捕获所有异常并统一提示“链接已被使用”,无法区分权限不足、名称非法等其他错误,修正后针对常见HTTP异常做了针对性处理。

关键注意事项

  • 自定义vanity邀请链接仅对Boost等级3级及以上的服务器开放,且链接名称需全局唯一,不能被其他服务器占用。
  • 机器人需要拥有**服务器管理权限(Manage Server)**才能修改vanity链接,否则会触发权限不足错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:32:52