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

如何使用discord.py为Discord频道上传的图片自动添加爱心反应

Discord.py 自动添加爱心反应实现方案

前置准备

  • 确保你使用的discord.py版本为2.0及以上
  • 前往Discord开发者平台的Bot管理页,开启Message Content Intent权限
  • 给Bot分配目标频道的「读取消息」「读取消息历史」「添加反应」权限

完整实现代码

import discord
from discord.ext import commands

# 配置需要的Intents
intents = discord.Intents.default()
intents.message_content = True
intents.messages = True

# 初始化Bot,命令前缀可按需修改,不需要命令功能可随意填写
bot = commands.Bot(command_prefix="!", intents=intents)

# 替换为你自己的#art and creativity频道ID,开启Discord开发者模式后右键频道即可复制
TARGET_CHANNEL_ID = 123456789012345678
# 支持的图片后缀,可按需新增
IMAGE_EXTENSIONS = {"png", "jpg", "jpeg", "gif", "webp"}

@bot.event
async def on_message(message: discord.Message):
    # 过滤Bot自身发送的消息,避免触发循环
    if message.author.bot:
        return
    
    # 仅处理目标频道的消息
    if message.channel.id != TARGET_CHANNEL_ID:
        return
    
    # 检查消息是否包含图片附件
    has_image = False
    for attachment in message.attachments:
        file_ext = attachment.filename.split(".")[-1].lower()
        if file_ext in IMAGE_EXTENSIONS:
            has_image = True
            break
    
    # 符合条件则添加爱心反应
    if has_image:
        await message.add_reaction("❤️")
    
    # 如果同时需要Bot响应命令则保留此行,否则可删除
    await bot.process_commands(message)

# 替换为你自己的Bot Token即可运行
bot.run("YOUR_BOT_TOKEN_HERE")

可选调整说明

  • 如果你希望用频道名匹配而非更稳定的ID匹配,可将频道判断逻辑改为if message.channel.name == "art and creativity",缺点是频道改名后功能会失效
  • 要新增支持的图片格式,直接往IMAGE_EXTENSIONS集合中添加对应后缀即可
  • 要更换反应表情,直接替换add_reaction方法中的字符即可,自定义表情需使用对应格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:36:03