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

Discord消息提取图片代码报错:缺少intents关键字参数

解决Discord机器人初始化缺少intents参数的问题

错误原因

Discord.py 2.0及以上版本强制要求实例化commands.Bot时传入intents参数,这是Discord API的权限机制更新,需要明确声明机器人需要接收的事件权限。

修复步骤

  1. 导入discord模块
    在现有导入代码中添加:
import discord
  1. 配置并传入intents参数
    替换原来的client = commands.Bot(command_prefix='.')为以下代码:
# 创建默认权限实例,开启消息内容读取权限
intents = discord.Intents.default()
intents.message_content = True

client = commands.Bot(command_prefix='.', intents=intents)
  1. 在Discord开发者门户开启特权权限
    登录Discord开发者门户,找到你的机器人应用,进入「Bot」页面,在「Privileged Gateway Intents」下开启Message Content Intent,否则机器人无法读取消息内容及附件。

完整修复后的代码

from discord.ext import commands
import discord
import uuid
import requests
import shutil

# 配置intents
intents = discord.Intents.default()
intents.message_content = True
client = commands.Bot(command_prefix='.', intents=intents)

def send_discord_message():
    url = "https://discord.com/api/v9/channels/1095975130758393868/messages"
    payload = {
        'content': "/generate description:world"
    }
    header = {
        'authorization': 'token'
    }
    requests.post(url, data=payload, headers=header)


@client.event
async def on_ready():
    print("Bot is ready")


@client.command()
async def save(ctx):
    try:
        url = ctx.message.attachments[0].url
    except IndexError:
        print("Error: No attachments")
        await ctx.send("No attachments detected!")
    else:
        if url.startswith("https://cdn.discordapp.com"):
            r = requests.get(url, stream=True)
            imageName = str(uuid.uuid4()) + '.jpg'
            with open(imageName, 'wb') as out_file:
                print('Saving image: ' + imageName)
                shutil.copyfileobj(r.raw, out_file)

client.run('-')

额外优化:将原代码中url[0:26] == "https://cdn.discordapp.com"替换为url.startswith("https://cdn.discordapp.com"),写法更简洁可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:20:18