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

如何使用discord.py在Discord中主动发送消息(无需接收触发消息)

如何用discord.py让机器人自主发送消息?

别担心,discord.py完全支持机器人自主发送消息,我给你分享两种最常用的实现方式,你可以根据自己的需求来选:

1. 机器人上线时自动发消息到指定频道

这是最基础的场景,比如机器人启动后给管理员发个通知。操作步骤很简单:

首先你得拿到目标频道的ID——打开Discord设置里的「开发者模式」,右键你要发消息的频道,选择「复制ID」就行。

然后写代码:

import discord
from discord.ext import commands

# 初始化机器人,设置命令前缀(如果不需要命令可以去掉prefix,用Bot(intents=...))
bot = commands.Bot(command_prefix="!", intents=discord.Intents.default())

@bot.event
async def on_ready():
    print(f"已登录为 {bot.user}")
    # 把这里的数字换成你复制的频道ID
    target_channel_id = 123456789012345678
    channel = bot.get_channel(target_channel_id)
    
    if channel:
        await channel.send("嘿!我已经上线待命啦😉")
    else:
        print("找不到指定频道,请检查ID是否正确,或者机器人是否有权限访问该频道")

# 替换成你自己的机器人令牌,从Discord开发者平台获取
bot.run("YOUR_BOT_TOKEN_HERE")

这里的核心是用bot.get_channel()拿到频道对象,然后通过await channel.send()发送消息——因为discord.py是异步框架,所以必须加await哦。

2. 主动触发消息(定时/外部事件)

如果想让机器人在特定时间发消息,比如每天定时提醒,或者根据外部条件触发,可以用discord.py的tasks扩展来实现定时任务:

import discord
from discord.ext import commands, tasks
from datetime import datetime

bot = commands.Bot(command_prefix="!", intents=discord.Intents.default())

# 定义一个每24小时执行一次的定时任务
@tasks.loop(hours=24)
async def daily_check_in():
    # 检查当前时间是否是早上9点整
    current_time = datetime.now()
    if current_time.hour == 9 and current_time.minute == 0:
        channel = bot.get_channel(123456789012345678)
        if channel:
            await channel.send("各位早!今天也要加油干活呀💪")

# 机器人启动后启动这个定时任务
@bot.event
async def on_ready():
    print(f"已登录为 {bot.user}")
    daily_check_in.start()

bot.run("YOUR_BOT_TOKEN_HERE")

要是你需要通过外部脚本触发机器人发消息,只要确保机器人的事件循环在运行,然后用bot.loop.create_task(channel.send("消息内容"))来异步执行发送操作就行。

几个关键注意点

  • 权限要到位:在服务器里给机器人的角色开启「发送消息」权限,如果要发带嵌入内容的消息,还要开启「嵌入链接」权限。
  • Intents设置:discord.py v2.x版本必须设置Intents,discord.Intents.default()已经包含了基础的频道访问权限,要是有特殊需求可以调整Intents的参数。
  • 异步规则:所有发送消息的操作都必须是异步的,一定要加await,不能直接调用send()方法,不然会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:21:19