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

如何用Python提取Discord的Ping消息,仅接收机器人DM通知?

如何仅接收Discord机器人的私信通知

方法1:用Discord内置通知规则(无需编码)

  • 打开和机器人的DM会话,点右上角的「通知设置」
  • 把这个会话设为「始终通知」,同时把其他私信会话的通知改成「仅提及我时」或「静音」
  • 这样哪怕全局私信通知是静音状态,机器人的消息照样会触发通知

方法2:让机器人发带@提及的消息

  • 修改机器人的错误通知代码,在消息开头加上@你的用户名(DM里@自己就能触发提及提醒)
  • 然后去Discord全局通知设置里,把「私信通知」设为「仅当被提及」
  • 这样只有带@的机器人消息会弹通知,其他私信不会打扰你

方法3:用Discord Gateway API监听消息(替代低效轮询)

轮询API既费流量又可能违反Discord准则,推荐用Gateway推送机制,只接收新消息:

  • 用官方支持的Discord库(比如discord.py)监听私信频道的消息事件
  • 过滤出发送者是机器人的消息,再触发自定义通知(比如桌面弹窗、声音提醒)

示例代码:

import discord
from discord.ext import commands

# 开启必要的权限
intents = discord.Intents.default()
intents.messages = True
intents.message_content = True

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

@bot.event
async def on_message(message):
    # 只处理私信+发送者是机器人的消息
    if isinstance(message.channel, discord.DMChannel) and message.author.bot:
        # 这里可以加自定义通知逻辑,比如桌面弹窗
        print(f"机器人通知: {message.content}")
        # 示例:用win10toast发桌面通知(先安装:pip install win10toast)
        # from win10toast import ToastNotifier
        # toaster = ToastNotifier()
        # toaster.show_toast("机器人错误提醒", message.content, duration=10)
    
    await bot.process_commands(message)

bot.run("你的机器人令牌")
  • 这是Discord官方推荐的方式,不会违反准则,而且只接收新消息,流量消耗极低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 15:12:13